我昨天问了一个关于SO的问题,标题为Deciding and implementing a trending algorithm in Django。很多人提出了一个简单的事情,像平均值(指数,权重等) 我有一本名为模型和另一个叫读者:计算和存储每日,每周,每月和每年的平均数据
class Book(models.Model):
name = models.charField()
class Reader(models.Model):
date = models.DateField()
book = models.ForeignKey(Book)
reader_count = models.PostiveIntegerField()
结构简单。每天都会添加新书,并且每天都会添加每本书的读者数量。即一本书将有一天的读者数量为每天,多个记录。
我需要计算本周,当前月份和当年的图书平均值。除了目前的数据,我还想保留历史数据。
如果我试图从数据库中查询这种数据,那就需要大打了。不是吗。此外,我试图用简单的平均数来实现这个系统,但是后来我想要改变我的计算方法的灵活性。我有两个选择 -
之一,在那里我可以在部分每次添加新
Reader
创纪录的时间存储的运算数据的另一个表更新数据。二,在那里我可以每天晚上通过脚本为当前日/周/月重建汇总数据。
下面是一些示例数据和结果。
Book Date Count
---- ---------- -----
AAAA 01.01.2012 10
AAAA 02.01.2012 20
AAAA 03.01.2012 30
AAAA 04.01.2012 30
AAAA 05.01.2012 40
AAAA 06.01.2012 10
AAAA 07.01.2012 25
AAAA 08.01.2012 15
AAAA 09.01.2012 10
第1周的读者人数平均值为:23.5。 第2周的平均读者数(本例将为当周)为:12.5 ..并且当前月份和年份为21.1
HTH。
为了给任何一个镜头,我想建立一个系统来存储数据。我需要每天,每周和每月存储平均值。然而,我很遗憾我应该实现什么样的表结构?如果可能的话,我不想重新发明轮子,所以如果你们中的任何一个知道任何允许我实现这个目标的软件包,那将是非常棒的。
谢谢。
谢谢你的回复塞巴斯蒂安。 – 2012-02-16 15:10:38
不客气...对不起,我忍不住了! – sebpiq 2012-02-16 15:12:02