当前位置:  开发笔记 > 数据库 > 正文

在数据库表中,主键的最大数量是多少?

如何解决《在数据库表中,主键的最大数量是多少?》经验,为你挑选了3个好方法。

在数据库表中,主键的最大数量是多少?



1> Jon Skeet..:

您只有一个主键(或者可能没有,虽然这会使各种事情变得棘手)但键可以包含多个列.

就个人而言,我发现复合主键(有一列多列)在我使用它们时一直很痛苦,但这可能是由于我的无能.即便如此,在某些情况下,使用复合键在逻辑上是合理的,我可能不会改变设计.(我认为更多的情况是Hibernate在使用复合键时稍微复杂一些.)



2> Jonathan Lef..:

在数据库理论中,表上最关键的约束称为候选键.候选键的列中的值唯一地确定存储在表的行中的其他列中的值 - 这是函数依赖性,以及归一化理论的关键方面.(严格地说,连接依赖关系是关键;依赖关系是连接依赖关系的一种特殊情况.)一个表可能有多个候选关键字.在那些候选键中,最多一个可以被指定为"主键"; 其他人成为"替代"钥匙(但由于某种原因,不是'二级钥匙',虽然它似乎是一个明显的名称).

我最喜欢的多个候选键的插图是来自化学和物理学的" 元素表 "(事实上它被称为"表格"很好):

CREATE TABLE elements
(
    atomic_number   INTEGER NOT NULL UNIQUE
                    CHECK (atomic_number > 0 AND atomic_number < 120),
    symbol          CHAR(3) NOT NULL UNIQUE,
    name            CHAR(20) NOT NULL UNIQUE,
    atomic_weight   DECIMAL(8,4) NOT NULL,
    stable          CHAR(1) DEFAULT 'Y' NOT NULL
                    CHECK (stable IN ('Y', 'N'))
);

它有3个候选键 - 原子序数,符号和名称(根据经验,你可以使用原子量作为第四个,但它不是唯一的,与其他三个相同).其中任何一个都可以被指定为主键,但通常使用原子序数或符号.其中哪一个更受欢迎在很大程度上取决于你是在处理化学(在这种情况下,符号是压倒性的赢家)还是(子)核物理,在这种情况下,原子序数可能更重要.您的次要表如同位素表会交叉引用原子序数; 您的化学化合物二级表更可能交叉引用该符号.(顺便提一下,您是否知道原子序数超过100的'尚未分离的'元素有3个字符的缩写?)



3> CMS..:

好吧,如果你问的是可以组成主键的最大列数是多少,对于SQL Server来说它是16.

参考:SQL Server的最大容量规范.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有