首页 > 解决方案 > 数据库复合主键中的顺序是否重要?

问题描述

我最近提出了以下问题:数据库主键中的顺序重要吗?

即如果我有一个 R(a,b,c,d,e) 关系并且我将 (a,b) 作为复合主键,那么 (b,a) 是否考虑相同的主键?

作为后续:如果 R(a,b,c,d,e) 是关系并且 (a,b,c) 是主键,则 (a,b,c,d,e) 和 (a, b,c,e,d) 被认为是相同的还是不同的超级键?

标签: sqldatabase

解决方案


这取决于你的目标。如果您只需要强制唯一性,则顺序无关紧要,因此密钥(a, b)将具有相同的效果(b, a)

如果您想使用将建立键的索引,您将不会得到相同的结果,因为(a, b)它将允许您a按升序和降序排序,并且仅在b升序排序之后,而如果您想排序,b那么您根本无法使用索引。


推荐阅读