【发布时间】:2011-03-31 06:24:35
【问题描述】:
我们设计一个不需要主键的表会不会发生?
【问题讨论】:
-
表中只有一行时
-
@Shakti @EBAG,这是真的,但是 1) 这什么时候会发生?并且,2) 将数据限制为始终只有一行是不好的做法。更好地设计数据库时考虑到未来。我敢肯定你是在开玩笑,但如果这个问题是合法的,那么 EBAG 需要知道即使只有一行,没有主键也是一个坏主意。
-
@rockerest - 当您想要一个代表各种配置选项的表时。您想使用不同的列,以便为每个选项使用适当的数据类型(例如,如果您想要某事的重试值,则将其存储为 int)。在这种情况下,您希望确保只有一行。当然,在这种情况下,理想的(理论上的)主键应该是没有列的主键,但我不知道有任何 SQL 产品可以让您声明它。
-
@Damien 您概述的场景是正确的,但我一直认为存储保证为一行的内容(如配置或设置信息)是关系数据库的混蛋。当您可以将信息存储在其他地方时,为什么要创建一个表并产生从该表中提取单个记录的开销?
-
@Shakti,根据定义限制为只有一行的表确实有一个键 - 键是空的(一组空的属性)。只是你不能直接用 SQL 的 PRIMARY KEY 约束来指定。 PRIMARY KEY != 主键 :)
标签: mysql sql database primary-key