核心数据模型 - 关系
Posted
技术标签:
【中文标题】核心数据模型 - 关系【英文标题】:Core data model - relationships 【发布时间】:2016-05-01 01:33:04 【问题描述】:我对如何为特定的三个实体设计核心数据模型感到困惑——特别是它们之间的关系。
“地点”是一个由名称(字符串)和地址(字符串)组成的实体。
“腿”是一个由起点(地点)和终点(地点)组成的实体。
“路线”是由任意数量的腿(Leg)按特定顺序组成的实体。
总之,Route 由 Legs 的有序列表组成,这些 Legs 本身只是表示两个 Place 之间的直线。
如何在数据模型中对 Leg 和 Place 实体之间的关系进行建模?每条腿正好有两个地方(开始和结束);并且任何地方都可以与无限数量的腿相关联,无论是作为开始还是结束。
【问题讨论】:
【参考方案1】:在 Leg 实体中添加两个关系,一个用于 startPlace,另一个用于 endPlace,使其类型为 "To One"
在 Place 实体中添加两个 inverse 关系(legsByStartPlaceInverse 和legsByEndPlaceInverse)并将它们的类型设为“To Many”。
确保删除规则不是“级联”。
【讨论】:
好的,所以采用这种方法我会: 1. 在 Route 实体中添加一个反向关系,称为“legs”,类型为“To Many”; 2. 在 Leg 实体中添加一个关系,称为“routesByLegInverse”,类型为“To Many”。看起来正确吗? 是的,Route 和 Leg 实体具有多对多关系。 谢谢,我尝试了您的解决方案,它似乎在我的项目中运行良好。以上是关于核心数据模型 - 关系的主要内容,如果未能解决你的问题,请参考以下文章