两个表主键作为第三个表的主键

时间:2013-10-04 09:51:21

标签: hibernate

我是hibernate的新手。我有两张表格如下

Table1{id1 primary key;}

Table2{id2 primary key;}

table1到table2之间存在一对多的关系。实现了这种关系,没有问题。我们还有第三个表格如下

Table3{(id1 & id2) primary key,  col3 ,col4}

通过谷歌搜索得到一个解决方案,如下面的第三个表映射。

<composite-id>
     <key-property name="id1" column="id1" />
     <key-property name="id2" column="id2"/>
</composite-id>

建议/指导我是否有更好/更高级的方法在hibernate中实现相同的方法。还建议更好的方法来保存和检索对象。

提前感谢。

1 个答案:

答案 0 :(得分:0)

我建议反对这种设计;主键应始终是单列,技术密钥(即没有任何业务关系)。

在我的模式中,我这样建模:

Table3( id primary key, table1fk foreign key, table2fk foreign key, col1, col2, ... )

优点:

  • 所有表格的相同设计
  • 使用外键确保您不会意外删除Table1Table2
  • 中的项目
  • 明确区分关注点:PK用于定位和识别行。外键意思是:我指的是另一张表。你的设计混合了两个