我正在开发一款聊天应用。您可以与一个人聊天或创建(加入)一个群组。我正在考虑数据库应该如何存储所有消息。
我想出了两个解决方案:
解决方案1.将所有消息存储到一张表中;
解决方案 2. 为用户加入的每个人或组创建一个消息数据库。
解决方案 1 很容易实现,但我不知道随着消息的增长它是否保持良好的性能。
该应用程序在 iOS 上运行,我将使用 sqlite 数据库。任何意见,将不胜感激。提前致谢。
最佳答案
一般来说,拥有多个具有相同结构的表是您的数据库不正确的标志之一 normalized .
如果你有单独的表,你就不能轻易地编写必须查看多个人/组的查询,例如“我最近最常和谁聊天?”
无论哪种方式,您的数据库都会增长。
您无需读取所有数据即可获得高效查询,这可以通过正确编写查询并创建适当的索引来完成。
参见 Query Planning , The SQLite Query Planner , 和 The Next Generation Query Planner .
关于ios - 聊天应用程序中的消息数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33591409/