主键可以使用字符值吗?

2023-11-22

与使用基于字符的字段相比,在数据库表中使用唯一的数字 ID 字段是否会带来性能提升或最佳实践?

例如,如果我有两个表:

athlete

id ... 17, name ... 里基·亨德森, teamid ... 28

team

teamid ... 28, teamname ... Oakland

运动员表有数千名运动员,如果teamid比如说,“OAK”或“SD”而不是“28”或“31”。让我们想当然地认为teamid价值观在字符形式上将保持独特和一致。

我知道你可以使用字符,但是出于任何原因这对于索引、过滤等来说是一个坏主意吗?

请忽略规范化参数,因为这些表比示例更复杂。


我发现从长远来看,无意义数字的主键会减少一些麻烦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

主键可以使用字符值吗? 的相关文章

  • CAP 定理 - 可用性和分区容错性

    当我尝试理解CAP中的 可用性 A 和 分区容错性 P 时 我发现很难理解各种文章的解释 我感觉A和P可以在一起 我知道事实并非如此 这就是为什么我无法理解 简单解释一下 A和P是什么以及它们之间的区别 一致性意味着整个集群中的数据是相同的
  • 从数据库而不是配置文件中读取 CodeIgniter 配置值

    您可能知道 当您使用 CI 创建新项目时 您必须手动输入基本网址 加密密钥在config config php中 我正在努力克服这个问题 因此正在寻找一种方法read那些价值观而是从数据库中 为客户进行安装并设置时间作为一个整体decrea
  • Oracle:如何查找模式中上次更新(任何表)的时间戳?

    有一个Oracle数据库模式 数据很小 但仍然有10 15个表左右 它包含一种配置 路由表 有一个应用程序必须不时轮询此架构 不得使用通知 如果架构中没有数据更新 应用程序应使用其当前的内存版本 如果任何表有任何更新 应用程序应将所有表重新
  • 清除表中的所有行将身份规范重置为零并且不影响外键?

    我们已经创建了数据库框架以及所有关系和依赖关系 但表内部只是虚拟数据 我们需要删除这些虚拟数据 并开始添加正确的数据 我们怎样才能清除所有内容并将主键 IsIdentity 是 保留为零 并且不影响外部表关系结构 多谢 您可以采取以下步骤
  • SQLite同时读写

    我读过很多主题 但无法找到问题的答案 是否可以同时读写 我有后台线程更新一些数据 UI 需要存储在数据库中的一小部分数据 所以在UI线程中执行SELECT操作 但当更新正在进行时它会阻塞 结果 UI 冻结了几秒钟 有人在写入时成功从数据库读
  • 为什么我应该使用内联代码? [复制]

    这个问题在这里已经有答案了 我是一名 C C 开发人员 这里有几个始终困扰我的问题 常规 代码和内联代码之间有很大区别吗 主要区别是什么 内联代码只是宏的一种 形式 吗 选择内联代码时必须进行什么样的权衡 Thanks 表现 正如之前的答案
  • PHP 5 的 SQLite 编译设置是什么?

    SQLite 3 7 附带了新的预写日志记录 WAL http www sqlite org wal html并且有很多设置可以被配置 http www sqlite org compile html 但是 似乎没有任何方法可以改变任何事情
  • 优化正则表达式以过滤数千个 HTML 选择选项

    背景 我开发了一个基于 jQuery 的穿梭小部件 https stackoverflow com a 13557000 59087对于 HTMLselect元素 因为我找不到一个经过最低限度编码并提供正则表达式过滤器来补偿的元素变音符号
  • 跨多个控件共享事件处理程序

    在我用 C 编写的 Windows 窗体应用程序中 我有一堆按钮 当用户的鼠标悬停在按钮上时 我希望按钮的边框发生变化 目前我有以下多个实例 每个按钮一个副本 private void btnStopServer MouseEnter ob
  • 多租户 Rails 应用:不同技术的优缺点是什么?

    我最初是为一位客户编写 Ruby on Rails 应用程序的 现在 我正在更改它 以便它可以用于不同的客户 我的最终目标是某些用户 不是我 可以单击按钮并创建一个新项目 然后生成所有必要的更改 新架构 新表 代码处理 无需任何人需要我编辑
  • DBMS 中的阻塞因素

    DBMS 中的阻塞因素是什么 我查看的位表示它是每个记录的块的下限值 因此 B R 下限 其中 B 是块大小 R 是记录 我只是想知道 有人可以告诉我它使用的主要原因 以及它是否真的是地板 我对 FLOORED 的理解是 1 5 降到 1
  • 内存高效的大型数据集流式传输到 S3

    我正在尝试使用 SQL alchemy 复制 S3 大型数据集 大于 RAM 我的限制是 我需要使用 sqlalchemy 我需要将内存压力保持在最低水平 我不想使用本地 filsystem 作为中间步骤将数据发送到 s3 我只想通过管道将
  • 如果我的应用程序安装在 SD 卡上,私人数据也在那里吗?

    我假设应用程序的私有数据 例如 SharedPreferences 和 SQLite 数据库 位于手机的内部存储而不是 SD 卡上 即使应用程序本身安装在 SD 卡上 我在任何地方都找不到对此的简单明确的确认 有人可以确认一下吗 是的 私有
  • 使用 numpy 加速 for 循环

    下一个 for 循环如何使用 numpy 获得加速 我想这里可以使用一些奇特的索引技巧 但我不知道是哪一个 这里可以使用 einsum 吗 a 0 for i in range len b a numpy mean C d e f b i
  • 是否有一个函数可以检索某个范围内可用的不同值的数量?

    我正在制作的应用程序中使用双精度浮点变量 我标准化了一些值范围 从 例如 我有很多范围 48 0 to 48 0 to 0 0 to 1 0 使用这个简单的函数 double ToNormalizedParam double nonNorm
  • Android 预填充数据库 [重复]

    这个问题在这里已经有答案了 我正在开发一个 Android 应用程序 需要在该应用程序的数据库中填充多个条目 一个表 包含 1000 10000 行 然后用户才能使用该应用程序 我浏览了一些教程 但不确定执行此操作的最佳方法 我是否应该在每
  • Django 模型同步表

    如果我更改 Django 模型中的字段 如何将其与数据库表同步 我是否需要在数据库上手动执行此操作 或者是否有工具可以帮助完成此过程 唉 Django 不支持任何简单的解决方案 django 唯一能为你做的就是使用与新模型匹配的新表重新启动
  • R 中的约束优化

    我正在尝试使用http rss acs unt edu Rdoc library stats html constrOptim html http rss acs unt edu Rdoc library stats html constr
  • 在 IEnumerable 中查找相同的集合

    有一项任务要弄清楚如何更新表 DataTable 连接到一个database没有UPDATE陈述 我想出的例子是从邮箱中读取警报 该表将写入 Alerts 如果邮件正文包含单词 SUCCESS gt Alert 变为绿色 如果 FAIL g
  • 尝试在 android 中更新 sqlite 数据库时出错

    我的数据库正在运行 但我插入的所有记录都是为了检查目的 现在我想删除所有表并创建新表 所以我尝试通过更改版本来更新数据库 我没有对创建表查询进行任何更改 但外键约束失败 代码 787 这是我的DBHelper class private s

随机推荐

  • firefox @font-face 因 fontawesome 失败

    我在运行的 OSS 应用程序上使用 FontAwesome 字体 但我似乎无法通过 Firefox 的字体清理程序 这些文件都在同一个域中提供 路径是正确的 我使用的是 FontAwesome 的官方 css 当通过其网站和本地文档提供时
  • 判断对象的类型? [复制]

    这个问题在这里已经有答案了 有没有一种简单的方法来确定变量是列表 字典还是其他变量 有两个内置函数可以帮助您识别对象的类型 您可以使用type 如果您需要对象的确切类型 并且isinstance to check对象的类型针对某物 通常 您
  • C# 中的 IRC 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我想在我的程序中嵌入一个小聊天窗口 用作基本的 IRC 客户端 这需要有限的功能 例如连接 断开连接 列出用户和发送私人消息 在撰写本文时 我已经尝试了几个臃肿的库 这些库使得创建一
  • 字典方法 Remove 和 Clear (.NET Core) 在枚举期间修改集合。没有抛出异常

    我正在尝试实现一个缓存机制安全地枚举集合 并且我正在检查内置集合的所有修改是否都会触发InvalidOperationException由各自的枚举器抛出 我注意到在 NET Core 平台中Dictionary Remove and Di
  • 如何使用 vaadin 使 VerticalLayout 可滚动?

    我有一个组件 它作为我所有页面的通用布局而存在 该组件的布局如下 使用油漆制作 所以请抱歉 p 向右箭头表示该布局是 Horizo ntalLayout 向下箭头表示 VerticalLayout 我真的很感兴趣使 bodyContent
  • 为什么归并排序中阈值交叉后要使用插入排序

    我到处都读到了分而治之的排序算法 例如Merge Sort and Quicksort 与其递归直到只剩下一个元素 不如转移到Insertion Sort当达到某个阈值 例如 30 个元素 时 这很好 但为什么只是Insertion Sor
  • 我如何在 google colab 中动态(循环)显示图像?

    我一直在尝试使用 pyplot matplotlib 来显示图像 因为它们在循环中变化 但我无法让任何东西工作 我基本上无法更新所显示的图像 这是复制问题的代码 f plt figure 1 ax plt gca show obj ax i
  • C++ 默认初始化是否保留先前的零初始化?

    如果具有静态存储持续时间的对象的 C 构造函数未初始化成员 是否需要保留先前的零初始化 或者是否会为成员留下不确定的值 我对 C 规范的解读是 它是自相矛盾的 Example include
  • 将 10,000,000 个文件从 Linux 上传到 Azure Blob 存储

    我对 S3 有一些经验 并且过去使用过s3 parallel put将许多 数百万 个小文件放在那里 与Azure相比 S3的PUT价格昂贵 所以我正在考虑切换到Azure 然而 我似乎无法弄清楚如何使用将本地目录同步到远程容器azure
  • 使用 Javascript 将 CSS 样式表作为字符串注入

    我正在开发一个 Chrome 扩展程序 我希望用户能够添加自己的 CSS 样式来更改扩展程序页面 而不是网页 的外观 我研究过使用document stylesheets 但它似乎希望将规则分开 并且不允许您注入完整的样式表 有没有一种解决
  • 如何为 WCF 客户端指定备用配置文件?

    我正在开发一个大型系统 我必须使用 WCF 来访问 Web 服务 我的测试代码工作正常 现在我需要将我的 WCF 客户端代码集成到更大的系统中 我无法添加到现有的 app config 文件 并且希望指定一个单独的 config 文件以供我
  • Android:如何从原始短信中获取发送者和接收者的电话号码

    我在从传入的原始短信中查找接收者电话号码时遇到问题 这是我正在尝试的代码 有人可以告诉我如何从原始短信中检索接收者的电话号码 public class SMSReceiver extends BroadcastReceiver privat
  • 如何清除文本字段焦点上的文本字段

    我想在用户单击该文本字段时清除该文本字段
  • 淘汰赛选中/取消选中所有组合框

    我使用淘汰赛将 JSON 对象映射到用户控件 我有一个复选框列表 他们看着像是
  • 表格的语言翻译

    我知道大多数人使用下面的方法并为需要翻译的特定表创建一个翻译表 但这可能会导致大量表的负载 CREATE TABLE Product Product id ProductTrans id FK CREATE TABLE ProductTra
  • 如何通过 GET 调用 ASMX Web 服务?

    我在这里定义了一个网络服务 app AutocompleteManager asmx WebMethod public string AutocompleteComposers return hey what s up 我想使用带有额外参数
  • 在android中显示unicode字符?

    我创建了一个消息应用程序 并且了解到很大一部分会员并不居住在北美或英国 当他们发布消息时 仅返回乱码文本 存储数据的所有数据库列均采用 UTF 8 格式 有没有办法正确显示某人已经输入的 UTF 8 字符 请参阅下面的屏幕截图 最简单的一个
  • 通过PHP远程服务器文件上传

    我有两台服务器 一台用于我的网站 另一台用于存储 我正在尝试创建一个页面 让其他人可以将文件上传到存储服务器 我希望使用表单帖子将其发送到那里 我写了一段非常简单的代码来解决这个问题 但遇到了一些麻烦 如果我将操作更改为将其保存在同一服务器
  • Cordova Firebase 插件通知 - 无法添加任务“:processDebugGoogleServices”,因为同名任务已存在

    我正在尝试在使用 Ionic 构建的 Phonegap Cordova 应用程序上添加 Google Firebase 通知 我已经成功安装了用于登录的 Google Plus 插件 我认为这将是一个有用的信息 我只需要这个 Firebas
  • 主键可以使用字符值吗?

    与使用基于字符的字段相比 在数据库表中使用唯一的数字 ID 字段是否会带来性能提升或最佳实践 例如 如果我有两个表 athlete id 17 name 里基 亨德森 teamid 28 team teamid 28 teamname Oa