我用谷歌搜索了很多,但我没有通过示例找到确切的直接答案。
任何这方面的例子都会更有帮助。
原文由 Dom 发布,翻译遵循 CC BY-SA 4.0 许可协议
我用谷歌搜索了很多,但我没有通过示例找到确切的直接答案。
任何这方面的例子都会更有帮助。
原文由 Dom 发布,翻译遵循 CC BY-SA 4.0 许可协议
代理键通常是一个数值。在 SQL Server 中,Microsoft 允许您定义具有标识属性的列,以帮助生成代理键值。
PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一值。主键列不能包含 NULL 值。大多数表都应该有一个主键,每个表只能有一个主键。
原文由 Bishoy Frank 发布,翻译遵循 CC BY-SA 3.0 许可协议
1 回答2.4k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
802 阅读
主键是您选择的表中的唯一键,它最能唯一地标识表中的一条记录。所有表都应该有一个主键,因为如果您需要更新或删除一条记录,您需要知道如何唯一标识它。
代理密钥是人工生成的密钥。当您的记录基本上没有自然键(例如
Person
表时,它们很有用,因为同一日期出生的两个人可能有相同的名字,或者日志中的记录,因为它是两个事件可能发生,因此它们带有相同的时间戳)。大多数情况下,您会看到这些实现为自动递增字段中的整数,或为每条记录自动生成的 GUID。身份证号码几乎总是代理键。然而,与主键不同,并非所有表都需要代理键。如果您有一张列出美国各州的表格,那么您实际上并不需要它们的 ID 号。您可以使用州缩写作为主键代码。
代理键的主要优点是它们很容易保证是唯一的。主要缺点是它们没有任何意义。例如,“28”是威斯康星州没有任何意义,但是当您在地址表的州列中看到“WI”时,您就知道您在说什么州,而无需查找您所在州的哪个州桌子。