首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你会使用@OneToOne关系的具体例子吗?

你会使用@OneToOne关系的具体例子吗?
EN

Stack Overflow用户
提问于 2011-12-15 23:08:02
回答 2查看 134关注 0票数 2

This answer解释了@ManyToOne@OneToOne之间的功能差异。尽管如此,我还是不明白-您什么时候会选择使用@OneToOne

如果我理解正确的话,这意味着表X中的每个对象(最多)映射到表Y中的一个对象,并且没有两个X映射到相同的Y。

合适的用例是可选属性吗?例如,汽车<-->后备箱,一些汽车有后备箱,如果有,他们就拥有它(没有汽车的后备箱是没有意义的)?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-15 23:33:01

1-1关系的另一个原因是出于性能原因(较小的表往往更快)以及当所需字段的数量太大以至于记录大小大于数据库可以支持的实际记录大小时,减小表记录的大小。

有时,在信息中存在自然分割,其中仅在主表中的信息被频繁访问的少数情况下才需要第二个表中的信息。在这种情况下,将其拆分也是有意义的。当事物归入两个不同的信息类别,但需要在它们之间实施一对一关系时,这是至关重要的。例如,一辆车可能只有一个发动机,但您可能希望将有关发动机的技术细节存储在与车主和许可证等信息不同的位置,因为您将在应用程序中以不同的方式使用这些信息。

另一种情况是,你目前有一对一的关系,但计划在未来建立一对多的关系。也许在房地产应用程序中,您一开始只显示房子的一张图片,但您计划在下一个版本中扩展这一功能。

票数 3
EN

Stack Overflow用户

发布于 2011-12-15 23:24:10

继承映射是数据库中一对一关系的一个很好的候选者。

假设您有一个" person“表来存储在公司工作的人员,但是一个人可以是员工,也可以是承包商。在这种情况下,您可以将所有常见属性存储在Person表中。例如:

birth

  • ...

  • Name
  • Address
  • Date

然后定义与"Employee“和"Contractor”表的一对一关系:

员工:

  • Payroll number
  • Salary
  • ...

承包商:

  • 每日rate
  • Contract number
  • ...
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8522181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档