2013-11-20 119 views
0

我想设置实体和关系的核心数据,来处理这种情况:核心数据实体关系层次

有队,每队可以有团队的多张照片,并在球队多个玩家..但每个玩家可以拥有多张照片。 (对不起,看起来我需要更多信誉点才能发布关系图)

如果这是可能的,我不知道如何正确设置它。在Photo实体中,我相信我可以将“forPlayer”和“forTeam”关系设置为可选项。这样做可以让我设置一个或另一个,以便照片与团队或玩家相关联。

这项工作?

现在如果我将一张照片与玩家联系起来会发生什么?如果我这样做,并且如果我启用了级联删除,如果团队或玩家被移除,是否会出现任何问题?

+0

您应该能够链接到上传到其他地方的图片。 – Wain

+0

对于级联部分,它们不应该是级联的 - 应该有1个所有者。所以在这种情况下你可能不应该使用级联。 – Wain

+0

为什么不创建一个玩家和团队继承的虚拟基类。那么它不会有问题,你也可以级联。 – rfrittelli

回答

0

我会区分PlayerPhotoTeamPhoto作为单独的实体。这也是合乎逻辑的,因为在现实世界中,这些照片会有些不同。 (当建模实体时总是建议尝试尽可能具体。)

PlayerPhotoTeamPhoto都可以从封装照片数据的Photo实体继承。据推测,你会有像fileNameurl属性,表示照片的位置。 (不要将照片作为NSData存储在数据库中,因为这只适用于小图像,如缩略图。)。

如果你要使用这两个球队和球员相同的实际照片,你仍然可以拥有两个独立的实体,即使它们指向同一个物理照片名称/ URL的条款。级联应该按照预期工作,同时保持所有照片文件不变。

至于删除不需要的照片,你既可以为这个帐户时删除照片的实体,或者有一个清理方法,消除你的对象图未引用的照片。