ios - 聊天应用程序中的消息数据库设计

标签 ios sqlite

我正在开发一款聊天应用。您可以与一个人聊天或创建(加入)一个群组。我正在考虑数据库应该如何存储所有消息。

我想出了两个解决方案:

解决方案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/

相关文章:

c# - 新 iPhone 开发者的 MonoTouch 与 Objective-C

python - 安装 coremltools 时出错

ios - 如何在 Swift 中获取容器内的 View ?

ios - 不工作 - 在 Swift 3/4 中以编程方式在 Api 中注册用户

Python sqlite3 : UPDATE failure claims "no such column"

Android - AsyncTask、SQLite 和上下文

ios - Firebase 查询字符串数组

sql - 在 SQLite 中更正除以零

ruby-on-rails - Mac雪豹如何安装sqlite3的ruby接口(interface)?

php - 即使提供了错误的用户名和密码,PHP登录脚本也会重定向