2012-02-14 30 views
-2

我有一个网站。访客可以注册。每个用户都可以将消息发送给其他用户。有进/出盒。我希望当用户从他的盒子中删除另一个用户的消息时仍然拥有它。删除只有一个字段的用户的邮件

我的问题是,这可以在表中只有一个字段?

为什么? 我想不出好的解决方案。好奇,朋友!

+2

为什么? ---------- – 2012-02-14 21:27:23

回答

2

是的。

对于一列,流将需要nullable列。

  • NULL意味着两者都有。
  • 如果删除 - UPDATE该用户的ID在列中。
  • 当其他用户删除它 - 你可以DELETE的记录。

尽管我强烈建议使用更强大的体系结构,但少的列不会更好。

@cwallenpoole有个很好的例子,试试看。

1

有一个带有“message_id”,“direction”和“user_id”列的表,其中包含user_id和message_id的外键(可能还使用enum或外键指示方向)。当用户删除消息时,只需删除该数据库中的条目即可。where message_id = $message_id and user_id = $user_id and direction = 'out';

+1

我想这不是,但这是真正应该如何接近。这意味着您可以将邮件存储一次并将其发送给多个收件人,并让他们全部存储独立的“删除状态”。 – cwallenpoole 2012-02-14 21:44:25

相关问题