Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 个人和全局消息数据库设计_Mysql_Database - Fatal编程技术网

Mysql 个人和全局消息数据库设计

Mysql 个人和全局消息数据库设计,mysql,database,Mysql,Database,我正在尝试实现一个数据库设计系统,它将向一个人(因此是1对1)或多个人(1对多)发送消息 根据我上面的模式,用户可以向一个人发送消息,也可以向多个人发送消息。一旦用户向一个人发送消息,我们将在recipient表以及message\u status表中显示所有收件人userid。因此,假设一个用户一次向100万用户发送一条消息,这意味着recipient和message\u status表中都会有100万行 当一个用户向多个用户发送消息时,是否可以通过减少行的插入来处理此问题,或者这是正确的做法

我正在尝试实现一个数据库设计系统,它将向一个人(因此是1对1)或多个人(1对多)发送消息

根据我上面的模式,用户可以向一个人发送消息,也可以向多个人发送消息。一旦用户向一个人发送消息,我们将在
recipient
表以及
message\u status
表中显示所有收件人
userid
。因此,假设一个用户一次向100万用户发送一条消息,这意味着
recipient
message\u status
表中都会有100万行

当一个用户向多个用户发送消息时,是否可以通过减少行的插入来处理此问题,或者这是正确的做法

注意

请注意,如果每个收件人愿意,系统应允许他/她删除收到的邮件,但是他们的删除不应影响其他收件人。因此,如果具有
u_id=02
的用户删除了她收到的消息,则具有
u_id=01
的用户仍应查看其消息


感谢您的帮助。

为什么不将
邮件状态表和
收件人表合并起来呢?然后只更新/插入一个表,而不是两个表

收件人:

      |r_id| m_id | recipient_id|  status | deleted |
      | 50 | 100  |  02         |  read   |  no     |
      | 51 | 200  |  01         |  unread |  no     |
      | 52 | 300  |  01         |  read   |  yes    |
      | 53 | 300  |  02         |  unread |  no     | 

为什么不把
message\u status
表和
receiver
表结合起来呢?@linger你从我嘴里偷走了这些话<代码>邮件\u状态
似乎包含
收件人
中的所有信息。如果您正在跟踪此信息,则无法帮助处理大量行。请注意,在一对多的情况下允许多个插入是否仍然正确messaging@George是的,是的。如果这是需要跟踪/保留的重要信息,请不要认为这会降低性能,因此当插入所有这些行时,系统的一个用户不会一次向100万用户发送一条消息。但是,每个数据库操作都会对性能产生影响。因此,您可以根据需要创建最佳的数据库结构。然后确保您有适当的硬件来支持负载。非常好。谢谢你的时间和想法@Linger
      |r_id| m_id | recipient_id|  status | deleted |
      | 50 | 100  |  02         |  read   |  no     |
      | 51 | 200  |  01         |  unread |  no     |
      | 52 | 300  |  01         |  read   |  yes    |
      | 53 | 300  |  02         |  unread |  no     |