1
4
简短版本:代理键或合成键(您可能指的是“标识列”)与自然键是一个非常古老的争论。 代理密钥的优点:
欺骗:
一般来说,一致认为代理键通常是一个好主意,但在联接表等简单情况下除外。 有关所有详细信息,请参阅 Wikipedia ,其中有一篇关于这个主题的好文章。 |
2
3
通常,代理键是整数值。这使得它们很容易使用与其他表的联接链接在一起(并相应地限制使用外键)。另外,当谈到SQL Server时,所有非聚集索引都依赖于聚集索引。因此,如果聚集索引基于自然键,因此其大小较大,那么所有非聚集索引也将较大,因为它们将引用回聚集索引。因此,许多人围绕基于整数的代理键构建主键。我知道我在简化它,但这是使用代理键的一个关键原因。 缺点是代理密钥实际上没有意义。如果有人要更改键的值,如果外键约束不存在或被禁用,则可能会中断关系。在更改替换键的情况下,实际上是在更改数据本身。因此,如果实体构建正确,并且您也将更改相关表中的数据,那么您可能会看到这样的中断。 |
kaiselwyvrn · 我无法打开Visual Studio项目 1 年前 |
4SadMemeXD · 无法在Django中选择相关类别 2 年前 |
Agrim Singh · 用户数据。名称未显示用户名 2 年前 |
Peloucvo · 用数据库中的数据填充JTable 2 年前 |
Montaser Majid · 用于从多行中提取单行的SQL查询 2 年前 |
Max J. · 用整数作为键将dict写入csv 2 年前 |