0

我希望跟踪有关用户的历史数据,并想知道不同的意见或方法来做到这一点。我试图用尽可能少的自定义代码来做到这一点。

该应用程序需要保存给定日期的用户名和用户体重和身高。在第二步(这不是这个问题的重点),我将使用这些数据绘制图表。该图表将显示给定用户的每日体重/身高,以跟踪用户的演变。

到目前为止,我一直在使用这种简单的方法,并想知道是否存在更好的方法来做到这一点。(这个类只是一个例子,IntergerField为了简化)

class ModelExample(model.Model):
    user = models.ForeignKey(User)
    date = models.DateField()
    height = models.IntegerField()
    weight = models.IntegerField() 

在这种情况下,我认为数据将被正确保存,但我认为检索给定用户的历史身高或体重信息将是一团糟。

4

1 回答 1

2

我一直在使用这种简单的方法,想知道是否存在更好的方法来做到这一点。

你展示的方法是有效的。我唯一要添加的是对用户和日期的唯一约束,因此您无法获取日期的重复数据(这会搞砸您的聚合查询)。您可以使用unique_together执行此操作:

class UserDimensionObservation(model.Model):
    user = models.ForeignKey(User)
    date = models.DateField()
    height = models.IntegerField()
    weight = models.IntegerField() 

    class Meta:
        unique_together = (('user', 'date',),)
于 2013-09-19T17:00:26.117 回答