核心数据实体关系层次结构

时间:2013-11-20 15:34:50

标签: ios entity-framework core-data

我想在核心数据中设置实体和关系来处理这种情况:

有团队,每个团队可以拥有团队的多张照片和团队中的多个玩家......但每个玩家也可以拥有多张照片。 (对不起,在我发布关系图像之前,看起来我需要更多的声望点。)

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

这会有用吗?

现在如果我将照片与玩家相关联怎么办?如果我这样做,并且如果我启用了级联删除,那么如果移除了团队或播放器会出现任何问题吗?

1 个答案:

答案 0 :(得分:0)

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

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

如果你想为团队和玩家使用相同的实际照片,你仍然可以拥有两个独立的实体,即使它们在名称/网址方面引用相同的实体照片。级联应该按预期工作,同时保留所有照片文件。

至于删除不需要的照片,您可以在删除照片实体时考虑到这一点,或者使用清除方法删除对象图中未引用的照片。