找到正确的主键

时间:2015-04-15 06:51:32

标签: mysql database composite-key

我决定将三个值的组合设置为我的数据库表的主键(复合键)。前两列的大多数时间都是唯一的。但在少数情况下它们都是相同的第三列值对于该行始终是唯一的。问题是第三列是描述,即用户可以输入的任何字符串。我知道不建议将用户给定字符串作为主键。但是可以将它作为复合键的一部分。我真的看不到其他选择。

2 个答案:

答案 0 :(得分:1)

如果可能的话,你应该添加一个代理主键,这意味着一个唯一且没有任何商业意义的密钥。

复合主键经常变得不那么“稳定”。比预期 - 但是如果你必须使用一个,那么使用一个或多个用户几乎没有控制权的组件列(比如created_timestamp)会更好。

答案 1 :(得分:0)

添加一个名为id的单独列,并将其设为auto increment,并将此列用作primary key

希望这能解决您的问题。

干杯。