最近我们正在为我们的应用开发IM功能。我们会用核心数据保存聊天记录。我们制定的战略是:
每个帐户都有一个单独的sqlite文件。
每个聊天都有一个单独的表(动态创建,请参阅本文),但是,表结构是相同的。比如,
如果我们将所有聊天消息放在一个表中,我们通过“fromid和toid”获取记录以获取特定的对话记录。但是,如果我们在此表中有数千条消息,我们怀疑获取请求会非常慢。所以我们为每个对话框创建一个特定的表。
那么,这个问题还有更好的解决方案吗?
答案 0 :(得分:1)
创建"表格"对于动态对话是一个非常糟糕的主意。这将产生如此多的开销,这将使您的代码完全低效。
相反,使用单个实体(不是表,请注意,Core Data不是数据库)来捕获消息。按用户ID过滤。
这将在没有100,000个消息的故障的情况下执行,远远超过应该在移动设备上存储或显示的消息。