我正在设计一个应用程序,其中用户发送/接收记录,我希望删除记录中列出的每个用户(一个用户的删除不会隐藏另一个用户的记录)。在
我的基本模型设计如下:
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
到{
我不认为有一个通用的行业标准解决方案。只要做任何你认为会让你的工作为你的具体应用。在
据我所知,你的邮件只能被发件人和收件人查看,在这种情况下,我认为没有理由添加M2M字段。它只会减慢应用程序的速度,因为它将使用额外的资源来执行额外的查找。然而,如果你需要扩展你的应用程序,许多用户都能看到一条消息(例如群组对话),那么添加M2M字段是有意义的。在
底线是做任何适合你的应用程序需求。与以往一样,它是抽象(更灵活)与性能之间的折衷。在
相关问题 更多 >
编程相关推荐