核心数据模型 - 关系

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 实体具有多对多关系。 谢谢,我尝试了您的解决方案,它似乎在我的项目中运行良好。

以上是关于核心数据模型 - 关系的主要内容,如果未能解决你的问题,请参考以下文章

在这种情况下,我如何建立核心数据模型以及与啥关系?

具有关系的核心数据模型

核心数据:有没有办法使用隐含关系而不是真实关系来有效地查询模型?

基于图像的核心数据模型关系是不是正确?

iPhone核心数据关系

如何创建父实体和关系的核心数据模型