所以,我正在编写一个POS系统,我希望它能够跟踪库存并根据过去的销售情况生成报告。
我非常熟悉数据库设计等等,但我不太确定如何处理这个特定问题。我想到的第一件事就是让表格按日,周,月和年跟踪项目销售,然后让程序跟踪已经过了多长时间,以便知道何时重置这些特定记录。但是现在我认为那里必须采用比这更简单的方法。
我想做的另一件事是根据时间戳查询销售交易表,但我不确定这是否也是朝着正确方向迈出的一步。
我知道有更简单的方法来处理订单和订单历史记录等与客户有关的事情,但对于商店本身来说,如果他们想跟踪他们在一个过程中销售了多少产品呢?周,月,年等?这是一种类似的方法吗?不同?我无法找到任何可以解决这一特定问题的事情。
答案 0 :(得分:1)
我会考虑你的第二个想法 - 为带有时间戳的事务创建一个表,并使用时间戳来执行报告(如果需要,还可以使用分区)。如果您知道将经常按时间戳查询,则可以在其上创建索引以提高性能。
无论您是跟踪客户订单还是商店销售,都不应对设计产生影响,除非存在一些主要的需求差异。
答案 1 :(得分:0)
这是一个商店所有者是自治的系统,还是一个有大量POS终端报告回中央枢纽的系统?
如果这是针对自主店主的,那么您必须开始担心备份和数据存档等问题。商店老板并不真正关心的东西。如果您在线查看,您可能会找到一些云服务提供商为商店所有者提供所有这些POS服务。
另一方面,我见过的大型企业的总体设计模式如下:
在POS终端上保存POS终端所需的最少数据。终端需要最少的报告。
将所有POS数据复制到中央数据库服务器,该服务器保留并合并所有不同的POS终端。这是您详细的运营报告。在此处复制数据后,可以从终端中删除
商店经常对较长的趋势不太感兴趣,但这取决于业务。
现在,您可以在中央数据库服务器上按月或年运行报告(您的商店所有者也可以),并且只需汇总一个月/年。此时无需创建汇总表。
最终,随着数据量的增加,您将遇到性能问题。
答案是不构建汇总表,因为您的用户/报表系统变得复杂,因为您必须选择正确的表。
答案是应用标准的性能调整技术,例如:
如果这还不够,您可能需要考虑填充汇总表的批处理作业的开销。但是,索引视图可以在有限的范围内覆盖这一点而无需汇总表。
在考虑任何设计选项(如汇总表)之前,您需要了解数据大小,增长和报告要求。