对于一个实例,采用如下的django
模型类。
因此,现在的问题是,如何有效地执行分析以生成每天的产品销售数量,每月的销售数量,每天的利润数量等等?
一个可能的解决方案是在特定日期的每个销售更新计数上。但是如果我有很大的客户群(即1百万客户和每小时500笔销售)。
那么有没有更好的方法来实现这一目标?
这些架构仅供参考
class Product(models.Model):
name = models.CharField(max_length=20)
category = models.ManyToManyField("Category", null=True)
...
...
class Sales(models.Model):
product = models.ForeignKey("Product")
price = models.DecimalField(max_digits=20)
timestamp = models.DateTimeField()
...
...
答案 0 :(得分:1)
这通常是通过Google Analytics(分析)之类的服务来完成的。
您可以在此处找到文档:https://support.google.com/analytics/answer/1009612
答案 1 :(得分:1)
创建一个模型SalesStatistics
,该模型存储每个预定义间隔的销售数量。如果需要每小时,每天和每月的统计信息,则存储小时统计信息就足够了。
有两种简单的方法可以实现这一目标-
id, sales_count, timestamp
__________________________________
1231 304 "2 pm, 21st April 2019"
1232 443 "3 pm, 21st April 2019"
您可以使用任何RDBMS轻松地每小时,每天或每月撤退
MYSQL提供了大量的日期时间功能,使查询时间序列数据变得容易。 https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html
event schedulers
。在数据库中,您可以安排在某些时间间隔运行查询,并将结果存储在表中。 [MySQL Event Scheduler][1]