映射两个表

时间:2016-06-13 09:11:53

标签: database hibernate relational-database one-to-many

现在,我有两个名为Devices and Systems的表。 设备 - 包含有关所有鼠标,CPU,键盘,显示器,投影仪等的信息。基本上是IT公司办公室中存在的所有信息。属性是(device_id [主键],in_office_since,assigned_to)

系统 - 现在这基本上是一组设备。例如,鼠标,cpu,监视器一起构成一个系统。

系统中可以包含任意数量的设备。例如,它只能由cpu和投影仪组成。 系统的属性是(system_id [由hibernate使用@GeneratedValue自动生成],device_id_1,device_id_2,...)其中device_id_1和类似命名的列是引用设备表或关系中的device_is的外键。

系统与设备之间存在一对多关系。

现在我无法弄清楚如何进行上述映射,其中一个表具有可变数量的属性。

1 个答案:

答案 0 :(得分:0)

您应该将其设计为正常的一对多关系。所以,

您的 devices 表格会:

  • device_id(PK)
  • in_office_since
  • assigned_to
  • system_id(引用systems表的FK,如果给定设备不属于任何系统,则可以为NULL)

和您的 systems 表:

  • system_id(PK)
  • ...

这样,您可以拥有由任意数量的设备组成的系统。这是建立一对多关系的规范方法,使用Hibernate进行映射将是微不足道的。