找到正确的主键

Finding the right primary key

我已经决定将三个值的组合设置为我的数据库的主键(复合键)table.Most 在少数情况下前两列将是 unique.But两者都相同,此时第三列的值对于那个 row.The 将始终是唯一的问题是第三列是一个描述,它是用户可以 enter.I 知道的任何字符串,不建议使用用户给定的字符串作为主要字符串 key.But 是否可以将其作为复合字符串的一部分 key.I 确实没有其他选择。

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

复合主键通常比预期的要少 'stable' - 但如果您必须使用一个,则使用一个或多个用户几乎无法控制或无法控制的组件列(例如 created_timestamp) 会更可取。

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

希望这能解决您的问题。

干杯。