Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 - Fatal编程技术网

Mysql 表结构

Mysql 表结构,mysql,Mysql,我是MYSQL新手,我正在开发消息模块。我的桌子结构就是这样 Message=>id,Message,已创建 MessageUser=>id,message\u id,receiver\u id,sender\u id,正在读取 用户=>id、用户名、电子邮件 发送方id和接收方id与User.id关联,消息id与message.id关联 当我对收件箱执行查询时,我输入了一个条件(其中receiver_id=$param); 与“我的已发送项目”条件相同(其中发送者_id=$param) 工作正

我是MYSQL新手,我正在开发消息模块。我的桌子结构就是这样

Message=>id,Message,已创建

MessageUser=>id,message\u id,receiver\u id,sender\u id,正在读取

用户=>id、用户名、电子邮件

发送方id和接收方id与User.id关联,消息id与message.id关联

当我对收件箱执行查询时,我输入了一个条件(其中receiver_id=$param); 与“我的已发送项目”条件相同(其中发送者_id=$param)

工作正常。但是当我从收件箱或发送的邮件中删除邮件时,问题就出现了

bcoz我对UserMessage表执行删除查询

当此邮件从“我的发送”框中删除时,它也将从其他用户的收件箱中删除

我有两个解决方案

1。添加另一列是_delete,并根据从接收方或发送方删除设置其值

2。将MessageUser表分为两个表 发送者=>id,消息id,发送者id; Receiver=>id,message\u id,Receiver\u id,正在读取

告诉我什么是更好的日光浴。还告诉我另一个独唱

提前谢谢 请尽快回复< /P> < P>选项3)考虑以下内容:

用户表(可以是发送方或接收方) 用户标识PK

消息表(消息或响应) 消息ID(主键) ParentMessageID(FK到self)


usermessagetableIMHO我认为更好的方法是添加一个带有

枚举(发送方、接收方、两者)类型


如果它正在存储
sender
,则它将从sender中删除;如果它的值是
receiver
,则它已被receiver删除,依此类推。

您列出的两个选项中:选项2更好,因为选项1不符合您指出的要求:您需要在选项1中添加两列:一列用于sender\u deleted,删除了一个用于接收器的。然而,我假设总是有一个发送者和一个接收者。是否有一个发送者和多个接收者?是的,可以有一个发送者和多个接收者。。