php - 收件箱/消息数据模型

标签 php mysql sql database database-design

我正在做一个项目,具体来说是一个网站,其中有一个收件箱或消息,用户可以在其中向其他用户发送消息。

我正在网上查看如何为此创建数据模型,你能帮我解决这个问题吗?我一开始所做的是将他们尝试输入的每条文本或消息都插入到数据库表中,我认为这不合适,因为如果有 10,000 个用户,想象一下用于消息传递的表将是巨大的。

您对此有什么建议吗?

这是我采用的方法。

用户发送者发送消息 --> INSERT msg INTO TABLE 消息 --> 用户接收者回复 --> INSERT reply INTO TABLE 消息。

在这种方法中,“消息”表将包含大量数据,想象一下是否有 10,000 个用户发送消息。

最佳答案

如果您需要存储用户的消息并且消息量很大,则数据(无论以何种方式组织)很大。但这数据库存储数据的目的。你的方法是最简单和最有效的。没有错。每条消息一条记录的消息表似乎是正确的和相关的方式。

想想数字。即使每个用户每天发送 10 条消息(这有多大可能?),它也会每天产生 10 万条记录或每年 3600 万条记录。这并不是一个很大的数目。

仔细设计索引,应该没问题。通过长期规划,您可以对旧消息进行压缩、分区(如果您的数据库支持)和修剪/存档。

关于php - 收件箱/消息数据模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19945318/

相关文章:

php - 语义错误类 'Blog' 未定义 Symfony 4

c# - 在 C# 的 php(pcre) 中找到的分支重置运算符 ("?|"的等价物是什么?

php - PDO::fetch() 限制 1

php - 识别具有200个字段的行中的一个字段(mysql数据库)

php - INSERT 上的 SQL 注入(inject)

sql - 左连接嵌套选择和聚合函数

java - Java中order by子句的SQL注入(inject)漏洞

php - 找不到 docker-compose pdo-mysql 驱动程序

php - 如何在 mysql 查询中执行 php 函数

mysql - 当服务器返回对象的属性顺序很重要时,我应该使用 JSON 还是 XML?