对于如何为以下场景构建数据库,我将不胜感激:
我正在使用Ruby on Rails,因此我有以下表格:
产品是批量生产的,因此每个产品都有一个批次代码,所以我想我还需要一个批次表,它指的是产品类型。
在现实世界中,销售人员从产品项目(来自特定批次)获取产品,并在适当的时候将其发布到商店。重要的是,批次很大,可能分布在许多销售人员,随后是商店。
在将来某个日期,我想运行以下报告:
现在,我假设我需要建立一个交易表,比如,
通过动态运行事务记录表,我可以推导出上述报告。然而,这似乎效率低下,并且随着时间的推移,越来越慢。
我的问题是:跟踪此类交易的最佳方式是什么,最好不要求动态处理所有交易,以从给定商店的批次中获取总项目。
我不相信我可以保持库存的中央记录,因为产品是批量生产,批次由Salepeople在商店中分发。
谢谢。
答案 0 :(得分:1)
我的问题是:跟踪此类交易的最佳方式是什么,最好不要求动态处理所有交易,以从给定商店的批次中获取总项目。
我不相信我可以保持库存的中央记录,因为产品是批量生产,批次由Salepeople在商店中分发。
相信它。 : - )
根据我的经验,唯一正确的方式来存储这种东西,是将其分解为类似于T-leger会计的东西,即带有会计科目表的借方/贷方。它需要动态处理才能得出你已经发现的总数,但是在处理报告和审计跟踪时,任何不足都会导致棘手的查询。
通过使用触发器维持部分或完整的总余额(例如,每家商店的每月库存变动),您可以显着加快速度。这将减少运行较大查询时需要求和的行数。您希望维护哪些内容取决于您的应用和报告要求。