如何为IM创建适当的数据库模型

时间:2015-08-19 02:45:34

标签: core-data

最近我们正在为我们的应用开发IM功能。我们会用核心数据保存聊天记录。我们制定的战略是:

  1. 每个帐户都有一个单独的sqlite文件。

  2. 每个聊天都有一个单独的表(动态创建,请参阅本文),但是,表结构是相同的。比如,

    • SENDER_ID
    • MSG_ID
    • 含量
    • msg_send_time ......
  3. 如果我们将所有聊天消息放在一个表中,我们通过“fromid和toid”获取记录以获取特定的对话记录。但是,如果我们在此表中有数千条消息,我们怀疑获取请求会非常慢。所以我们为每个对话框创建一个特定的表。

    那么,这个问题还有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

创建"表格"对于动态对话是一个非常糟糕的主意。这将产生如此多的开销,这将使您的代码完全低效。

相反,使用单个实体(不是表,请注意,Core Data不是数据库)来捕获消息。按用户ID过滤。

这将在没有100,000个消息的故障的情况下执行,远远超过应该在移动设备上存储或显示的消息。