映射两个表
Mapping two tables
现在,我有两个 table 名为设备和系统。
设备——包含有关所有鼠标、cpu、键盘、显示器、投影仪等的信息。基本上是 IT 公司办公室中存在的所有内容。属性是 (device_id[主键],in_office_since,assigned_to)
系统-- 现在这基本上是设备的集合。例如一个鼠标,一个cpu,一个显示器一起组成一个系统。
一个系统中可以有任意数量的设备。例如,它只能由 cpu 和投影仪组成。
系统的属性是 (system_id[hibernate 使用 @GeneratedValue 自动生成],device_id_1,device_id_2,...) 其中 device_id_1 和类似命名的列是在设备 table 或关系中引用 device_is 的外键。
系统与设备之间存在一对多关系。
现在我无法弄清楚,如何在 table 之一具有可变数量的属性的情况下进行上述映射。
你应该把它设计成一个正常的一对多关系。所以,
您的 devices
table 会:
device_id
(PK)
in_office_since
assigned_to
system_id
(引用 systems
table 的 FK,如果给定设备不属于任何系统,则可以为 NULL)
和你的systems
table:
system_id
(PK)
- ...
这样,您就可以拥有由任意数量的设备组成的系统。这是建立一对多关系的规范方式,使用 Hibernate 映射将是微不足道的。
现在,我有两个 table 名为设备和系统。 设备——包含有关所有鼠标、cpu、键盘、显示器、投影仪等的信息。基本上是 IT 公司办公室中存在的所有内容。属性是 (device_id[主键],in_office_since,assigned_to)
系统-- 现在这基本上是设备的集合。例如一个鼠标,一个cpu,一个显示器一起组成一个系统。
一个系统中可以有任意数量的设备。例如,它只能由 cpu 和投影仪组成。 系统的属性是 (system_id[hibernate 使用 @GeneratedValue 自动生成],device_id_1,device_id_2,...) 其中 device_id_1 和类似命名的列是在设备 table 或关系中引用 device_is 的外键。
系统与设备之间存在一对多关系。
现在我无法弄清楚,如何在 table 之一具有可变数量的属性的情况下进行上述映射。
你应该把它设计成一个正常的一对多关系。所以,
您的 devices
table 会:
device_id
(PK)in_office_since
assigned_to
system_id
(引用systems
table 的 FK,如果给定设备不属于任何系统,则可以为 NULL)
和你的systems
table:
system_id
(PK)- ...
这样,您就可以拥有由任意数量的设备组成的系统。这是建立一对多关系的规范方式,使用 Hibernate 映射将是微不足道的。