【问题标题】:Core data model - relationships核心数据模型 - 关系
【发布时间】:2016-05-01 01:33:04
【问题描述】:

我对如何为特定的三个实体设计核心数据模型感到困惑——特别是它们之间的关系。

“地点”是一个由名称(字符串)和地址(字符串)组成的实体。

“腿”是一个由起点(地点)和终点(地点)组成的实体。

“路线”是由任意数量的腿(Leg)按特定顺序组成的实体。

总之,Route 由 Legs 的有序列表组成,这些 Legs 本身只是表示两个 Place 之间的直线。

如何在数据模型中对 Leg 和 Place 实体之间的关系进行建模?每条腿正好有两个地方(开始和结束);并且任何地方都可以与无限数量的腿相关联,无论是作为开始还是结束。

【问题讨论】:

    标签: core-data


    【解决方案1】:
    1. Leg 实体中添加两个关系,一个用于 startPlace,另一个用于 endPlace,使其类型为 "To One"

    2. Place 实体中添加两个 inverse 关系(legsByStartPlaceInverse 和legsByEndPlaceInverse)并将它们的类型设为“To Many”

    3. 确保删除规则不是“级联”。

    【讨论】:

    • 好的,所以采用这种方法我会: 1. 在 Route 实体中添加一个反向关系,称为“legs”,类型为“To Many”; 2. 在 Leg 实体中添加一个关系,称为“routesByLegInverse”,类型为“To Many”。看起来正确吗?
    • 是的,Route 和 Leg 实体具有多对多关系。
    • 谢谢,我尝试了您的解决方案,它似乎在我的项目中运行良好。
    猜你喜欢
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 2013-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多