MySQL - 存储发送给大量用户的帖子

标签 mysql sql

我正在构建一个带有互补移动应用程序的网络应用程序。假设出于该问题的目的,Web 应用程序用于创建发送给所有或部分移动应用程序用户的消息。我正在尝试确定存储这些消息的最佳方式。

目前,我已经用一张表设置了messages存储消息和另一个表 recipients它为每条消息的每个收件人存储一条记录。

例如,如果我有一条 id 为 1 的消息发送给三个用户 alex, bill, chris ,然后 recipients表格将如下所示:

recipients_id | message_id | username
1             | 1          | alex
2             | 1          | bill
3             | 1          | chris

message_idmessages 的主键和usernameusers 中的一个字段表(我实际上使用的是 INT PK,但只是使用一个字符串来解决问题)。

现在想象一下,消息不是发送给三个用户,而是发送给数百甚至数千个用户。这还可行吗?我知道 MySQL 表可以处理数百万条记录,但我只是想知道这是否是最有效的方法。

最佳答案

是的,这是在 SQL 中实现多对多关系的正确方法。

唯一的选择是逗号分隔的列表。但这样你就会受到列大小的限制。并且加入这种类型的值是困难且低效的。

关于MySQL - 存储发送给大量用户的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298975/

相关文章:

SQL 选择 table1.column 作为 table1.column

sql - Postgres 递增列中的空值

mysql - 搭建一个小商店网站,为图片设置ID

php - 如何在数据库中插入带有双引号的值?

php - 如何在html表中显示原始sql查询输出

sql - 以简单的数据库架构 : Good and Bad points? 为例

C# - UPDATE SET WHERE 查询问题 (OleDb)

php - 错误:Column count doesn't match value count at row 1

php - Symfony2 使用查询生成器加载特定的 ManyToMany 对象

php - 如何进行查询以找到字符串中的特定文本并抓取其旁边的部分?