Iphone 核心数据关系

Iphone 核心数据关系,iphone,ios,ipad,core-data,orm,Iphone,Ios,Ipad,Core Data,Orm,在我的应用程序中,有N个用户。每个用户可以有N个类别。每个类别可以有N本书籍 我创建了以下实体图书元数据、用户、类别 BookMetadata实体是来自不同用户的图书数据的唯一集合 如何在这些实体之间创建关系 -用户与类别之间的关系。(一对多)或用户与书籍(一对多,一个用户可以拥有一本或多本书籍) 类别与书籍之间的关系。(一对多) 如果我对实现这些关系的理解正确,我在CoreData中创建关系方面相对较新。如果没有更好的解决方案,请告诉我如何解决 编辑: 考虑一下这个场景 User 1 -&g

在我的应用程序中,有N个用户。每个用户可以有N个类别。每个类别可以有N本书籍

我创建了以下实体图书元数据、用户、类别

BookMetadata实体是来自不同用户的图书数据的唯一集合

如何在这些实体之间创建关系

-用户与类别之间的关系。(一对多用户与书籍(一对多,一个用户可以拥有一本或多本书籍)

类别与书籍之间的关系。(一对多

如果我对实现这些关系的理解正确,我在CoreData中创建关系方面相对较新。如果没有更好的解决方案,请告诉我如何解决

编辑:

考虑一下这个场景

User 1 -> Category 1 -> Book1,Book2.
       -> Category 2 -> Book3, Book4.

User 2 -> Category 1 -> Book1,Book2,Book3.
       -> Category 3 -> Book4
在上面的场景中。同一本书(第3册)针对不同用户有不同的类别。 如何处理这种情况

编辑2:


我附加了一个示例sqlite DB文件@dropbox

作为惯例,实体应命名为单数。这些关系应相对于其关系命名为复数或单数

根据给定的信息,假设类别是由用户创建的,用于将书籍分组,如播放列表或其他内容。类别对于用户是唯一的,并且不会在用户之间共享。一本书可以分为任意数量的类别

所以这将成为

用户<-->>类别

类别>书籍

书籍<-->>类别

关系应该有两面性。让我们来定义它。如果一个用户可以有任意数量的类别,而一个类别只能有一个用户。类别的倒数是一个用户


是的,这是非常正确的。您没有设置类别与用户以及书籍与类别之间的反向关系吗?用户与类别之间的关系是错误的,必须是多对多关系:您希望用户能够阅读/购买属于不同类别的书籍,相反,您希望书籍类别属于多个用户。类别和书籍之间的关系是正确的(一对多)。@Anupdas感谢您的回复。请检查我的编辑。另外,我需要在类别与用户以及书籍与类别之间设置反向关系,请您解释一下。您能解释一下类别在这个系统中的作用吗。此类别是用户创建的。类别对用户来说是唯一的吗?与您给定的信息类别和书籍也将有很多关系。与给定的信息,我更新了我的答案。看看它是否符合你的要求。