SQL - 必须始终有主键吗?

时间:2014-06-11 14:39:54

标签: sql

已经有几个类似的问题,而且似乎一致认为应始终创建主键。

但是如果你有一个用于存储设置的单行表怎么办(请不要把它变成讨论为什么创建一个单行表可能是好/坏)?

当然在单行表上有一个主键变得完全没用?

4 个答案:

答案 0 :(得分:4)

它可能看起来完全无用,但它也完全无害,而且我用优秀的设计原则投票给无害,而每次都没有设计原则就没用。

其他人正确地评论说,你不知道你将在一年或五年内如何使用这张桌子...如果有人出现并决定他们想复制配置 - 将其移动到分布式环境或使用重复的配置字符串或其他任何内容添加测试环境。拥有一个充当主键的字段意味着无论何时查询表格,如果您使用密钥,您都可以确定无论其他人对您的表格做什么,您都能获得正确的答案。记录。

你还有一百万个其他方面 - 代理键与智能键,索引,分区(在单行表上傻,我知道),无论如何......但是没有进入我和# 39; d vote添加密钥而不是添加密钥。你可以在读这个帖子的时候完成它。

答案 1 :(得分:2)

简短回答,无密钥,可能重复记录。你现在计划单排,但是当你单排乘以时,未来六个月会是多少。将主键放在桌面上,即使是单行也是如此。

答案 2 :(得分:0)

您始终可以将主键作为设置名称的基础。然后你的桌子将成为一个键值商店。

但不是,在许多RDBMS中,您不需要每个表都有一个主键。

答案 3 :(得分:0)

在SQL 中的单行表上声明主键将确保不会重复。它是否无用取决于您的要求。通常,避免重复是个好主意。