聊天,会话,消息传递 – CoreData模型
在将问题标记为该问题的重复之前,请阅读说明。 我不需要在评论中继续讨论。
所以我想创build消息应用程序的CoreData
模型。 就像我在这个话题中所说的那样 – 我有三个实体:
-
User
实体定义对话中的消息和参与者的作者。 -
Message
实体定义每个发送应用程序的文本。 -
Conversation
实体定义使用消息的用户对话。
好吧,我的数据模型是这样的:
但是这里的一切都连接在一起。 提到的答案和我的解决scheme之间唯一的区别是User
和Message
使用一对多的关系连接 。 我想我需要这个,因为没有这个知道谁在谈话中写什么是不可能的。
但是据我所知,数据模型当一切连接到对方都没有任何意义。
所以这里的关键目标是:
- 在对话屏幕上,我想知道是谁写的
- 在一个对话中可以至less参与两个用户
- 该消息是纯文本的
- 用户必须能够列出他所有的对话。
而已。
请validation当前的解决scheme,并随意批评。
据我所知, User
和Conversation
之间并不存在真正的多对多关系。
如果用户喜欢获取所有的对话,他可以使用这个获取请求:
User* user = //get some user you like conversations for NSFetchRequest* r = [NSFetchRequest fetchRequestWithEntityName:@"Conversation"]; r.predicate = [NSPredicate predicateWithFormat:@"ANY messages.author = %@",user];
以同样的方式,您可以获得给定对话的所有用户。
您可以将其设置为每个实体( User
和Conversation
)的提取属性。
您应该考虑将chat
关系改为messages