gpt4 book ai didi

ios - 聊天、对话、消息传递 - CoreData 模型

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:01:19 24 4
gpt4 key购买 nike

在将问题标记为 this question 的副本之前请阅读说明。我不需要在评论中继续讨论。

所以我想为消息传递应用程序创建 CoreData 模型。就像我在本主题中提到的那样 - 我有三个实体:

  1. User 实体定义消息的作者和对话的参与者。
  2. Message 实体定义了应用程序发送的每条文本。
  3. Conversation 实体定义了用户使用消息进行的对话。

好的,我的数据模型是这样的: Data model

但这里的一切都是相互联系的。提到的答案和我的解决方案之间的唯一区别是 UserMessage 使用一对多关系连接。我想我需要它,因为没有它就不可能知道谁在对话中写了什么。

但据我所知,当一切都相互连接时,数据模型毫无意义。

所以这里的关键目标是:

  1. 在对话屏幕我想知道谁写了什么
  2. 在一个对话中至少可以有两个用户参与
  3. 消息是纯文本的
  4. 用户必须能够列出他所有的对话。

就是这样。

请验证当前的解决方案并随时批评。

最佳答案

据我所知,UserConversation 之间没有真正需要多对多关系。

如果用户想要获取其所有对话,他可以使用此获取请求:

User* user = //get some user you like conversations for
NSFetchRequest* r = [NSFetchRequest fetchRequestWithEntityName:@"Conversation"];
r.predicate = [NSPredicate predicateWithFormat:@"ANY messages.author = %@",user];

以同样的方式,您可以获得给定对话的所有用户。

您可以将其建模为每个实体(UserConversation)的获取属性。

您真的应该考虑将 chat 关系更改为 messages

关于ios - 聊天、对话、消息传递 - CoreData 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22529175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com