我正在使用聊天应用。您可以与一个人聊天或创建(加入)一个组。我正在考虑数据库应该如何存储所有消息。
我想出了两个解决方案:
解决方案1.将所有消息存储到一个表中;
解决方案2.为用户加入的每个人或组创建一个消息数据库。
解决方案1很容易实现,但我不知道它是否随着消息的增长而保持良好的性能。
该应用程序在iOS上运行,我将使用sqlite数据库。任何意见,将不胜感激。提前谢谢。
答案 0 :(得分:2)
通常,拥有多个具有相同结构的表是数据库不正确的标志之一normalized。
如果您有单独的表,则无法轻松编写必须查看多个人/组的查询,例如"我最近经常与谁聊聊?"
您的数据库将以任何一种方式增长。 通过不必读取所有数据就可以获得高效的查询,这可以通过正确编写查询并创建适当的索引来完成 请参阅Query Planning,The SQLite Query Planner和The Next Generation Query Planner。