我的应用程序是一种 POS 系统。问题在于报告。每个产品、每个桌子、每个员工、每个类别的销售额。拥有 1 年的日期范围报告非常慢,因为它们必须汇总很多行等。所以我想知道 no-sql 数据库是否可以提供帮助,例如每天进行摘要或其他内容。但也许这并不容易,因为可能有针对每个项目*产品*类别*员工等查询。那么我该怎么办?
问问题
337 次
1 回答
5
如果您对关系数据库感到满意,我建议您坚持使用它们,并为您常用的报告使用每日汇总表。
例如,如果想要按产品编号分组销售报告,请找出您正在寻找的统计数据(即销售数量)并将您的原始数据按产品编号汇总到一天大小的“桶”中。
+-----------+------------+------------+-------+-------+
| salesdate | productNum | totalSales | stat2 | stat3 |
+-----------+------------+------------+-------+-------+
如果您在每天结束时执行一天大小的存储桶,您的报告每月将只有 30 个存储桶,或每年 365 个存储桶。总结起来要快得多。在构建仪表板(小时大小的存储桶)时,我已经使用网络性能指标完成了这项工作,它大大减少了查询时间。如果需要,您始终可以挖掘原始数据,但对于想要一目了然的普通用户来说,聚合的存储桶就足够了。
您也可以考虑将汇总表放在单独的数据库中。
请记住,如果您的一个统计数据是平均值,则一系列平均值的平均值不是整个范围的平均值。
于 2012-08-19T13:08:47.857 回答