0

我有以下数据库设计(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 已删除该消息,我是否必须列第二列?

4

1 回答 1

0

我会使用datetime这样的两列:

user_from_deleted_on DATETIME
user_to_deleted_on DATETIME

如果该列是NULL,则该用户尚未删除该消息。这样,您可以分别记录每个用户的删除操作,并且还可以对这些事件发生的时间进行审计跟踪。您还可以通过将列重新设置为 来取消删除消息NULL

于 2013-11-06T13:05:39.707 回答