gpt4 book ai didi

sql - 主键和代理键有什么区别?

转载 作者:行者123 更新时间:2023-12-01 18:34:31 61 4
gpt4 key购买 nike

我用谷歌搜索了很多,但没有找到带有示例的确切直接答案。

任何这方面的例子都会更有帮助。

最佳答案

主键是表中的唯一键,您选择它可以最好地唯一标识表中的记录。所有表都应该有一个主键,因为如果您需要更新或删除一条记录,您需要知道如何唯一标识它。

代理键是人工生成的键。当您的记录本质上没有自然键(例如 Person 表)时,它们很有用,因为同一日期出生的两个人可能具有相同的姓名,或者日志中的记录,因为两个事件有可能发生,并且它们具有相同的时间戳)。大多数情况下,您会看到它们作为自动递增字段中的整数实现,或者作为为每条记录自动生成的 GUID 实现。 ID 号几乎总是代理键。

但是,与主键不同,并非所有表都需要代理键。如果您有一个列出美国各州的表格,那么您实际上并不需要它们的 ID 号。您可以使用州缩写作为主键代码。

代理键的主要优点是很容易保证它们是唯一的。主要缺点是它们没有任何意义。例如,“28”是威斯康星州是没有意义的,但是当您在地址表的“州”列中看到“WI”时,您就知道您正在谈论哪个州,而无需查找您所在州的哪个州表。

关于sql - 主键和代理键有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36773011/

61 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com