表中有多个主键

时间:2014-06-04 11:56:46

标签: mysql database database-design innodb

我的一位朋友刚给我发了一张他新的api数据库设计的图片。

当我看到它时,我注意到他的用户表有三个主要ID。

我实际上认为这是不可能的。

让我思考......这样做可以吗?只要每列都是唯一的吗?

我似乎无法找到不这样做的理由,除非id不是主要的,如果有多个。

这是一个糟糕的数据库设计吗?为什么?

1 个答案:

答案 0 :(得分:3)

每个表应该只有一个列被指定为PRIMARY KEY,并且大多数DB将禁止使用多个PRIMARY KEYS。请注意,PRIMARY KEY可以跨越多列。对于需要唯一值的其他列,请使用UNIQUE。 UNIQUE键也可用于外键关系。