我正在构建一个带有互补移动应用程序的网络应用程序。假设出于该问题的目的,Web 应用程序用于创建发送给所有或部分移动应用程序用户的消息。我正在尝试确定存储这些消息的最佳方式。
目前,我已经用一张表设置了messages
存储消息和另一个表 recipients
它为每条消息的每个收件人存储一条记录。
例如,如果我有一条 id 为 1
的消息发送给三个用户 alex, bill, chris
,然后 recipients
表格将如下所示:
recipients_id | message_id | username
1 | 1 | alex
2 | 1 | bill
3 | 1 | chris
message_id
是 messages
的主键和username
是 users
中的一个字段表(我实际上使用的是 INT PK,但只是使用一个字符串来解决问题)。
现在想象一下,消息不是发送给三个用户,而是发送给数百甚至数千个用户。这还可行吗?我知道 MySQL 表可以处理数百万条记录,但我只是想知道这是否是最有效的方法。
最佳答案
是的,这是在 SQL 中实现多对多关系的正确方法。
唯一的选择是逗号分隔的列表。但这样你就会受到列大小的限制。并且加入这种类型的值是困难且低效的。
关于MySQL - 存储发送给大量用户的帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298975/