我应该尽可能多地避免使用复合主键吗?

时间:2016-05-13 23:43:16

标签: mysql sql database hibernate

我有一个业务案例,实体的密钥是复合的,我应该在数据库中保留这种方式,还是应该添加一个自动递增的ID作为主键? ...添加自动递增的ID会给设计带来一些复杂性。

有没有理由避免使用复合键@乍一看?

我正在使用java-hibernate-Mysql

1 个答案:

答案 0 :(得分:1)

使用复合键没有任何害处。最常用的是在一个表中,该表充当对另外两个表的交叉引用。交叉引用表还可以包含仅与该记录组合相关的其他数据。我发现最好设计你的表和关系以最小化复杂性。因此,正如你所说,如果不使用复合键,你将增加复杂性,然后通过各种方法,使用复合键而不是试图在一些解决方案中使用鞋拔,这只能用于删除复合键而不需要任何实际益处。