我有以下数据库设计(MySQL):
id|message_id|reply_id|user_id_from|user_id_to|title|message|sent_date|read_date|type
id INT(11) Auto-increment
message_id INT(11)
reply_id INT(11)
user_id_from INT(11)
user_id_to INT(11)
title TEXT
message TEXT
sent_date DATETIME
read_date DATETIME
type VARCHA(255)
现在我遇到了如何最好地软删除邮件的“问题”。如果(对话中的)用户 1 删除了他/她的收件箱中的消息,则该消息不应在用户 2 的收件箱中删除。
我应该如何最好地解决这个问题?如果用户 1 删除了该消息,我是否必须在存储位置列,如果用户 2 删除该消息,我是否必须在第二列存储该消息?
最佳答案
我会使用两个datetime
列,如下所示:
user_from_deleted_on DATETIME
user_to_deleted_on DATETIME
如果该列为NULL
,则该消息尚未被该用户删除。这样,您可以单独记录每个用户的删除操作,并且还可以对这些事件发生的时间进行审计跟踪。您还可以通过将该列设置回 NULL
来取消删除消息。
关于mysql - 数据库设计私信系统(关于删除),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19812579/