基于Djang的单用户软删除模型设计

2024-05-14 23:01:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在设计一个应用程序,其中用户发送/接收记录,我希望删除记录中列出的每个用户(一个用户的删除不会隐藏另一个用户的记录)。在

我的基本模型设计如下:

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到{},这是否是一种改进?这似乎会使客户端代码更简单。软删除通常是如何在每个用户的基础上实现的?在


Tags: 用户falsetruedefaultbymodels记录sender
1条回答
网友
1楼 · 发布于 2024-05-14 23:01:31

我不认为有一个通用的行业标准解决方案。只要做任何你认为会让你的工作为你的具体应用。在

据我所知,你的邮件只能被发件人和收件人查看,在这种情况下,我认为没有理由添加M2M字段。它只会减慢应用程序的速度,因为它将使用额外的资源来执行额外的查找。然而,如果你需要扩展你的应用程序,许多用户都能看到一条消息(例如群组对话),那么添加M2M字段是有意义的。在

底线是做任何适合你的应用程序需求。与以往一样,它是抽象(更灵活)与性能之间的折衷。在

相关问题 更多 >

    热门问题