使用反向关系两次?

Posted

技术标签:

【中文标题】使用反向关系两次?【英文标题】:Using an inverse relationship twice? 【发布时间】:2011-11-24 09:14:41 【问题描述】:

我想知道我是否可以对 2 个不同的关系使用相同的反向关系两次?

这是一个例子:

旅行

Origin(一对一关系)MapPoint(逆ReferencedBy)

Destination(一对一关系)MapPoint(反向 ReferencedBy)

地图点

ReferencedBy(多对多关系)Trip(这里有问题,如何设置逆?)

【问题讨论】:

【参考方案1】:

不,你不能或不应该。我试过了,但它会引起混乱。

所以 MapPoint 应该有 2 个关系。

ReferencedByOrigin ReferencedByDestination

一开始可能看起来很奇怪。但是想想看。这种方法没有任何问题。

另一种方法是建立从 MapPoint 到 Origin 和 Destination 的一对多关系,并放置一个枚举。

这种方法更优雅,但实际上要复杂得多。

另一种方法是有 2 个子实体,分别是 Origin 和 Destination。

这个更优雅,但你仍然需要

ReferencedByOrigin
ReferencedByDestination

在地图点中。

【讨论】:

它会引发警告:***.com/questions/38258510/… 我该如何解决?

以上是关于使用反向关系两次?的主要内容,如果未能解决你的问题,请参考以下文章

如何访问反向关系django的反向关系

使用反向关系在 django 模型中获取 n 个项目

用 pip 显示反向依赖关系?

使用核心数据的父实体继承和反向关系

MagicalRecord findByAttribute 返回反向关系文档问题

CoreData Parent Children 使用单个实体的一对多反向关系