我在核心数据模型中的父子实体中有一个小问题。我的核心数据模型有一个 Person 实体,它可以有许多 googleplus 帐户或 twitter 帐户链接到它。由于这两个实体;GooglePlus 和 Twitter 在某种程度上与它们的属性相似,我想创建一个名为 SocialConnection 的抽象实体。现在,我的 Person 实体与 SocialConnection 实体具有多对多关系,而 SocialConnection 实体又是 GooglePlus 和 Twitter 的父级。
Person <----->> SocialIdentifier ---- Child ---- GooglePlus
|
|
Child
|
|
Twitter
我的图形模型如下图所示。
现在,我这里有一个情况。Person 有一个名为 socialConnections 的属性,它将获取所有连接,无论它是 Twitter 对象还是 GooglePlus 对象。但是,有时我想只获取 twitter 和 GooglePlus。我该怎么做。
我认为一个想法是从 SocialIdentifier 指向 Person 实体的反向关系,并让 Person 创建与每个孩子的正向关系。
它将表示为;
Person <----------- SocialIdentifier -------- Child --------GooglePlus----->> Person
|
|
Child
|
|
Person <<------- Twitter
图示;
但是,即使有这种表示,我也面临一些问题。我可以从 Person 模型中获取 google 和 twitter,但它没有引用 SocialConnections 即。所有的连接。而且,我觉得这是多余的,因为第一个简化了设计。我确信对第一个进行一些调整会产生所需的结果,但我无法弄清楚。
我如何直接从第一个模型中获取推特或谷歌,或者是否可以在不使用谓词的情况下从 Person 模型中获取所有连接。我相信有一些非常巧妙的解决方案。我要提前感谢您的帮助和建议。