【发布时间】:2013-12-28 17:09:22
【问题描述】:
我正在设计一个用户发送/接收记录的应用程序,我希望为记录中列出的每个用户分开删除(一个用户的删除不会对另一个用户隐藏记录)。
我的基本模型设计如下所示:
class BasePrivateMessage(TimeStampedModel):
accepted = models.NullBooleanField(default=None, null=True, blank=True)
# fields in question
archived_by_recipient = models.BooleanField(default=False)
archived_by_sender = models.BooleanField(default=False)
read = models.BooleanField(default=False,
help_text='Recipient has viewed.')
recipient = models.ForeignKey('accounts.CommonUserProfile',
related_name='%(class)s_received')
sender = models.ForeignKey('accounts.CommonUserProfile',
related_name='%(class)s_sent')
message_body = models.TextField()
将archived_by_xxxx 字段替换为ManyToManyField 到accounts.CommonUserProfile 是否会有所改进,该字段负责存储隐藏(软删除)记录的用户列表?似乎这会使客户端代码更简单。软删除通常如何在每个用户的基础上实现?
【问题讨论】:
标签: python django database-design django-models soft-delete