This answer解释了@ManyToOne和@OneToOne之间的功能差异。尽管如此,我还是不明白-您什么时候会选择使用@OneToOne
如果我理解正确的话,这意味着表X中的每个对象(最多)映射到表Y中的一个对象,并且没有两个X映射到相同的Y。
合适的用例是可选属性吗?例如,汽车<-->后备箱,一些汽车有后备箱,如果有,他们就拥有它(没有汽车的后备箱是没有意义的)?
发布于 2011-12-15 23:33:01
1-1关系的另一个原因是出于性能原因(较小的表往往更快)以及当所需字段的数量太大以至于记录大小大于数据库可以支持的实际记录大小时,减小表记录的大小。
有时,在信息中存在自然分割,其中仅在主表中的信息被频繁访问的少数情况下才需要第二个表中的信息。在这种情况下,将其拆分也是有意义的。当事物归入两个不同的信息类别,但需要在它们之间实施一对一关系时,这是至关重要的。例如,一辆车可能只有一个发动机,但您可能希望将有关发动机的技术细节存储在与车主和许可证等信息不同的位置,因为您将在应用程序中以不同的方式使用这些信息。
另一种情况是,你目前有一对一的关系,但计划在未来建立一对多的关系。也许在房地产应用程序中,您一开始只显示房子的一张图片,但您计划在下一个版本中扩展这一功能。
发布于 2011-12-15 23:24:10
继承映射是数据库中一对一关系的一个很好的候选者。
假设您有一个" person“表来存储在公司工作的人员,但是一个人可以是员工,也可以是承包商。在这种情况下,您可以将所有常见属性存储在Person表中。例如:
birth
的
然后定义与"Employee“和"Contractor”表的一对一关系:
员工:
承包商:
https://stackoverflow.com/questions/8522181
复制相似问题