Django数据库设计选择

时间:2011-12-20 22:06:24

标签: database django

我有一个允许编辑其他表集合的用户表(每个表都有一个last_modified字段,表示最后一次更改)。我有另一个表来跟踪每个更改(我有更好的方法来跟踪历史记录/版本控制,但这意味着更多的是向用户发布滚动更新列表)

class WhatsNew(models.Model):
    author = models.ForeignKey(User)
    model_update = models.CharField("Database Table", max_length=100)
    object_id = models.IntegerField("Object ID")
    object_name = models.CharField("Object Name", max_length=100)
    changed = models.TextField("Fields Updated", blank=True, null=True)
    pub_date = models.DateTimeField("Date/Time of Update", auto_now_add=True)

我希望用户能够看到他们所做的所有编辑。我会通过查询上表,过滤作者来做到这一点。但此外,我希望用户看到他们按ID分组的编辑列表。因此,例如,如果用户12345编辑了对象2-1,然后是3-2,那么再次2-1,然后是4-4,我希望用户能够看到一个列表(2-1,3-2, 4-4),他们修改对象的时间,以及任何人修改对象的时间。

我应该在单独的表中捕获所有这些数据还是尝试从WhatsNew表中查询它?我想我应该在新表中捕获它以避免可能昂贵的查询,但我不想复制数据库中已有的信息。

0 个答案:

没有答案