代理与自然/业务密钥[关闭]

2023-11-22

又来了,老争论依然出现……

我们是否最好将业务键作为主键,或者我们宁愿使用对业务键字段具有唯一约束的代理 ID(即 SQL Server 标识)?

请提供例子或证据来支持你的理论。


使用代理键的几个原因:

  1. 稳定:由于业务或自然需要而更改键会对相关表产生负面影响。代理键很少(如果有的话)需要更改,因为没有与值相关的含义。

  2. 习俗:允许您有一个标准化的主键列命名约定,而不必考虑如何连接具有各种主键名称的表。

  3. Speed:根据 PK 值和类型,整数的代理键可能更小,索引和搜索速度更快。

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

代理与自然/业务密钥[关闭] 的相关文章

  • oursql 中的参数化查询

    如果有人能告诉我是否可以使用命名占位符进行参数化查询 我将不胜感激oursql 一个用于与 MySQL 数据库交互的 python 模块 例如 我尝试了一种可以与 sqlite3 一起使用的查询 c execute select from
  • 从对象定义生成数据库表

    我知道有几种 自动 方法可以创建数据访问层来操作现有数据库 LINQ to SQL Hibernate 等 但我有点厌倦了 我相信应该有更好的做事方式 比如 在 Visio 中创建 更改表 使用 Visio 的 更新数据库 创建 更改数据库
  • mysql表中的数据非常大。即使 select 语句也需要很多时间

    我正在开发一个数据库 它是一个相当大的数据库 有 13 亿行和大约 35 列 这是我检查表状态后得到的结果 Name Table Name Engine InnoDB Version 10 Row format Compact Rows 1
  • 多重映射的每个元素是否都包含键和值?

    我无法想象没有人问过这个问题 但我没有运气找到它 a 的每个元素是否multimap包含它的价值and它的钥匙 这就是a的内部结构multimap看起来更像这样 map
  • 巩固 Django 南迁移

    在我的项目的初始阶段 我对模型进行了很多更改 因此我最终为我的应用程序生成了很多向南迁移 在转到我的生产服务器执行迁移之前 是否可以以任何方式整合它们 这样我就不会为每个应用程序进行一百万次迁移 如果是这样 我该怎么做呢 您始终可以删除现有
  • SQLite 仅当值不为空时更新列

    Query UPDATE item table SET field1 field1 spanish field2 field2 spanish 问题 我怎样才能更新field1 with field1 spanish ONLY if fie
  • MySQL 概念:会话与连接

    我对 MySQL 的概念有点困惑 会话与连接 当谈论连接到 MySQL 时 我们使用连接术语 连接池等 然而在 MySQL 在线文档中 http dev mysql com doc refman 4 1 en server system v
  • 如何在 C++ 上检查某个键是否被按下

    我怎样才能检查 Windows 上是否按下了某个键 正如其他人提到的 没有跨平台的方法可以做到这一点 但在 Windows 上你可以这样做 下面的代码检查 A 键是否按下 if GetKeyState A 0x8000 Check if h
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • 如何正确设计数据库的这一部分(循环引用?)

    情况 一个公司有很多项目一个项目有很多标签一个项目只属于1家公司一个标签可以属于多个项目公司必须有权访问自己的标签 示例1 在第一张图片中 公司的所有标签都可以通过projects project tag 获得 但如果所有项目都被删除 那么
  • 简单、安全的API认证系统

    我有一个简单的 REST JSON API 供其他网站 应用程序访问我网站的一些数据库 通过 PHP 网关 基本上该服务的工作原理如下 调用 example com fruit orange 服务器返回有关橙子的 JSON 信息 问题是 我
  • 主键默认可以为NULL吗?为什么这样描述呢?

    我有一张桌子 当我describe这是 mysql gt DESC my table Field Type Null Key Default Extra contact id int 11 NO PRI NULL auto incremen
  • MongoDB 支持浮点类型吗?

    我正在将 mysql 数据库迁移到 mongodb 但我读过 MongoDb 数据类型 然后没有引用浮点类型 如 float double decimal 我如何在 mysql 模式中拥有一些带有十进制类型的字段 我该怎么做或我能做什么 M
  • 当两个表非常相似时,什么时候应该将它们合并?

    我有事件和照片 然后对两者进行评论 现在 我有两个评论表 一个用于与事件相关的评论 另一个用于照片评论 架构与此类似 CREATE TABLE EventComments CommentId int EventId int Comment
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • 在 Python 中,如果我有 unix 时间戳,如何将其插入 MySQL 日期时间字段?

    我正在使用 Python MySQLDB 我想将其插入 Mysql 中的 DATETIME 字段 我该如何使用cursor execute 来做到这一点 要将 UNIX 时间戳转换为 Python 日期时间对象 请使用datetime fr
  • Laravel Eloquent 预加载:加入同一个表两次

    我有一个users表和一个约会桌子 在约会表中 我有两个用户 ID customer id staff id 我想检索所有带有客户姓名和员工姓名的约会 users table id name appointments table id st
  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 数据库分区 - 水平与垂直 - 规范化和行拆分之间的区别?

    我试图理解不同的概念数据库分区这就是我的理解 水平分区 分片 将表拆分为不同的表 其中将包含初始表中的行的子集 如果按大陆拆分用户表 我见过很多这样的示例 例如北美的子表 欧洲的另一个子表 ETC 每个分区位于不同的物理位置 理解 机器 据
  • Rails has_many 到 has_many 具有多个模型

    模拟以下情况的最佳方法是什么 Word belongs to wordable polymorphic gt true Phrase has many words as gt workable belongs to story Line h

随机推荐

  • 使现有的不可写和不可配置的属性可写和可配置

    假设我有一个对象 var agent new Agent name James type secret id 007 当我构建 Agent 类时 我决定使 id 属性不可变 Object defineProperty Agent proto
  • Android:在画布上绘制视图

    我有一个膨胀的视图 我可以将其绘制在画布上 但似乎无法正确定位它 LayoutInflater li LayoutInflater context getSystemService Context LAYOUT INFLATER SERVI
  • 如何保护自己免受Python中垂直字符串列表中缺少逗号的影响?

    在 python 中 垂直方向的字符串列表很常见 例如 subprocess check output application first flag second flag some additional flag 这看起来不错 可读 不违
  • “git add”和“git update-index”有什么区别

    git add 和 git update index 有什么区别 在什么情况下我会使用这些命令之一或另一个 基本上 update index is a plumbing命令 这意味着 低级 git add内部使用update index 我
  • size_t 的值无效

    人们用什么来表示 size t 无效 1 不起作用 0 可以是有效大小 Perhaps size t 1 严格来说 它is有效的尺寸 但一旦有了这个 您就不太可能需要任何其他的
  • Java 中带有属性的枚举

    每种颜色都有自己的静态属性 数字 我希望能够用一种方法来改变这个值 我可以使用枚举来做到这一点吗 像这样或者也许不同 public enum Color RED ORANGE YELLOW Color RED setValue x Colo
  • 删除 Excel 单元格中的换行符、回车符和所有前导空格

    我不知道发生了什么 但我的单元格中包含似乎是回车的东西 我努力了TRIM CLEAN SUBSTITUTE A1 CHAR 10 以及一些用于删除这些字符的宏 删除这些字符的唯一方法是使单元格处于活动状态 单击最后一个字符附近的删除 然后单
  • React Native + Redux Form - 使用键盘下一个按钮转到下一个 TextInput 字段

    我在用着回归形式 RF 在 React Native 应用程序中 一切正常 但我不知道如何获得refs来自Field输入以使用 Redux Form 转到下一个输入字段 不带射频this解决方案会很好地工作 这是我的代码 class Ren
  • 无法通过套接字“/var/mysql/mysql.sock”连接到本地 MySQL 服务器 (38)

    我在尝试连接 mysql 时遇到了一个大问题 当我跑步时 usr local mysql bin mysql start 我有以下错误 Can t connect to local MySQL server through socket v
  • 如何获取频率然后将其作为变量添加到数组中?

    假设我有一个这种格式的数组 X Y Z A 1 0 A 2 1 B 1 1 B 2 1 B 1 0 我想找到给定X的X的频率和Y的频率 然后将它们添加到数组中 X Y Z F x F Y X A 1 0 2 1 A 2 1 2 1 B 1
  • 包含 Visual Studio 测试运行程序集的目录无效

    我们已将 TFS 安装从 2012 年升级到 2013 年 运行我们的构建时 如果启用单元测试 它们将失败并出现以下错误 TF900547 The directory containing the assemblies for the Vi
  • “ref”使用的实用示例[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在努力如何在实际应用程序中使用 ref 通过引用传递参数 我想要一个简单且主要有意义的例子 到目前为止 我发现的所有内容都可以通过向方法添加返回类型来轻松重做 有人知道吗 谢
  • Ruby Gemspec 中的条件依赖

    我正在构建一个 gem 需要安装 json gem 才能正常工作 哪种 json gem 并不重要 json pure json jruby 或基于 C 的 json 有没有在 gemspec 中定义这个的好方法 这个回应建议为每个版本维护
  • PhantomJS - 上传文件而不提交表单

    是否可以使用 PhantomJS 将文件上传到某个页面而无需手动提交表单 我认为使用内容类型 multipart form data 是可能的 上的例子https github com ariya phantomjs blob master
  • 访问 dplyr 中的分组数据

    从 dplyr 应用 group by 函数并使用 运算符后 如何访问分组数据 例如 如果我想要每个分组数据的第一行 那么我可以使用 plyr 包来执行此操作 ddply iris Species function df df 1 outp
  • Flask 会话如何工作?

    我很好奇 Flask 会话是如何工作的 特别是它如何在服务器重新启动之间存储信息 如果我错了 请引用我的话 我知道你必须设置一个独特的app secret key因此人们无法以任何方式解密会话并修改 cookie 因为会话的 cookie
  • 将数组中的空值替换为零值

    我有一个数组 我需要删除空值并将其替换为零 我已经取得了这么多成就 当我检查数组长度为 8 但它只显示 2 个元素时 用零替换它的最佳方法是什么 var a a 3 5 a 5 15 console log a length 6 conso
  • 获取相关实体 ASP.NET WebApi OData v4 导致“未找到与请求 URI 匹配的 HTTP 资源”

    我跟着Mike Wasson 的这个 ASP NET 教程 并设法很好地设置了相关实体 但是当我将此逻辑应用于我的项目时 更复杂的实体关系 因为实体关系更多 这是唯一的区别 在 OData 调用中不会成功 我收到带有此有效负载的 404 e
  • 找不到模块 FBSDKCoreKit Cocoapods

    我正在尝试使用 CocoaPods 使用 use frameworks 将 facebook 集成到我的应用程序中 标签 并根据 Facebook 的此处说明 还包括吊舱螺栓 当我尝试使用时import FBSDKCoreKit在我的 ap
  • 代理与自然/业务密钥[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 又来了 老争论依然出现 我们是否最好将业务键作为主键 或者我们宁愿使用对业务键字段具有唯一约束的代理 ID 即 SQL Server 标识 请提供例子或证据来支持你的理论 使用代理键的几个