首页
学习
活动
专区
圈层
工具
发布

表结构
EN

Stack Overflow用户
提问于 2011-12-26 13:54:24
回答 2查看 178关注 0票数 0

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

消息=> id,消息,创建

MessageUser => id,message_id,receiver_id,sender_id,is_read

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

sender_id和receiver_id联系User.id,message_id联系Message.id

当我对收件箱执行查询时,我放置了一个条件(其中receiver_id = $param);与发送的项条件相同( sender_id = $param);

当我从收件箱中删除邮件fine.but 或发送消息时,问题就出现了。

因为我在UserMessage表上执行删除查询。

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

我有两个独白

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

2。将MessageUser表分为两个表:发件人=> id、message_id、sender_id;接收者=> id、message_id、receiver_id、is_read;

告诉我什么是更好的解决办法。同时也告诉我另一个解药

谢谢,请尽快回复

EN

回答 2

Stack Overflow用户

发布于 2011-12-26 15:07:41

备选案文3)考虑以下内容:

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

消息表(消息或响应) MessageID (PK) ParentMessageID (FK到self)

UserMessage表<--您对此表上的删除进行操作。邮件将保持不变,直到所有父消息和子消息的所有userMesages标记为已删除为止。SenderID ReceiverID MessageID状态(已删除、isRead等)

票数 0
EN

Stack Overflow用户

发布于 2011-12-26 15:23:05

我认为更好的方法是在

枚举(发送者,接收者,两者)类型。

如果它正在存储sender,那么它就会从发送方中删除,如果它的值是receiver,那么它就会被接收方删除等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8636382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档