类似Facebook的消息的数据库设计[已关闭]
2022-08-30 22:57:56
我目前正在规划一个PHP / MySQL的新系统,并希望确保我的数据库可以处理我计划存储的数据量。我的新项目的功能之一是像Facebook这样的“消息”功能。我想确保为最终用户创造最佳体验。该网站最终将处理1000个用户,总共可能有数百万条消息。数据库设计的最佳方法是什么?MySQL甚至是合适的数据库吗?
我目前正在规划一个PHP / MySQL的新系统,并希望确保我的数据库可以处理我计划存储的数据量。我的新项目的功能之一是像Facebook这样的“消息”功能。我想确保为最终用户创造最佳体验。该网站最终将处理1000个用户,总共可能有数百万条消息。数据库设计的最佳方法是什么?MySQL甚至是合适的数据库吗?
MySQL对数百万或数亿条记录没有问题,只要您正确设计数据库即可。
话虽如此,“像Facebook这样的消息功能”是一个非常广泛的定义。通常,您将定义一个表,将每条消息链接到创建它的用户(即,在messles表中有一列)。如果希望邮件发送给多个用户,则有一个表,通过存储由 和 和 组成的多个记录来定义一对多关系。向这些表添加适当的索引,您就完成了 80% 的进度。messages
userId
message_recipients
messageId
recipientId
话虽如此,剩下的20%可能是一个杀手。不幸的是,你如何使用你的数据库将决定你还需要做什么,在做出这些判断之前,你必须提供有关你的应用程序的更多细节。例如,您可能希望考虑使用自动存档解决方案,使主表保持相对较小,并将旧数据移动到可在必要时访问的备份表。您可能不会立即需要它,但它将来可能会有所帮助。