数据库设计私信系统(关于删除)

时间:2013-11-06 12:50:19

标签: mysql

我有以下数据库设计(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删除了邮件,我应该使用第二列吗?

1 个答案:

答案 0 :(得分:0)

我会使用两个datetime列,如下所示:

user_from_deleted_on DATETIME
user_to_deleted_on DATETIME

如果列为NULL,则该用户尚未删除该邮件。这样,您可以单独记录每个用户的删除,并且还可以跟踪这些事件发生的时间。您还可以通过将列设置回NULL来取消删除邮件。