0

我想知道是否有更好的方法来实现这一点:我有一个包含多个字段的模型。每个字段都需要有多个具有相应值的日期范围。例如,我可能有一个带有布尔变量“Hungry”的类“Person”,从上午 9 点到下午 12 点为真,从下午 12 点到下午 2 点为假,然后在下午 2 点到 5 点再次为真。我的日期范围未涵盖的任何时间都只是默认值。

实现这一点的一种方法是将 Hungry 变成一个具有值、开始时间和结束时间的单独类。那么 Person 将与 Hungry 建立多对多关系。有没有更好的方法来实现这一点,它不会为每个变量创建一个表,但仍然允许轻松查找?

4

1 回答 1

0

我建议使用外键而不是多对多关系。

Class Person(models.Model):
    #...

Class Hungry(models.Model):
    person = models.ForeignKeyField(Person)
    start = models. DateTimeField()
    end = models. DateTimeField()
    hungry = models. BooleanField()

我想你可以用 a替换person字段,以便将其压缩到一个表中,但这是糟糕的数据库设计。它实际上应该是两个单独的表。HungryCharField

于 2013-03-11T22:37:16.143 回答