这不是关于"编程"的问题(不是特定于任何语言或数据库),而是更多的设计和架构.这也是"什么是最好的X方式"的问题.我希望不会引起太多"宗教"的争议.
在过去,我开发了以某种方式保留某种形式的物品清单(与物品无关)的系统.有些人使用不支持交易的语言/数据库.在这些情况下,我选择不在项目记录的字段中保存项目数量.相反,库存量计算共计收到库存-总库存的销售.由于软件的原因,这导致库存几乎没有差异.表格已正确编入索引,性能良好.如果记录量开始影响性能,则存在归档过程.
现在,几年前我开始在这家公司工作,我继承了一个跟踪库存的系统.但数量保存在一个字段中.注册条目后,收到的数量将添加到项目的数量字段中.销售商品时,会减去数量.这导致了差异.在我看来,这不是正确的方法,但此前的程序员发誓它.
我想知道是否就设计这样的系统的正确方法达成共识.还有哪些资源可用,印刷或在线,以寻求相关指导.
谢谢
我已经在我现在的公司看到了两种方法,并且肯定会倾向于第一种方法(根据股票交易计算总数).
如果您只在一个字段中存储总数量,则您不知道如何到达该数字.没有交易历史记录,您最终可能会遇到问题.
我写的最后一个系统通过将每笔交易存储为具有正数或负数的记录来跟踪库存.我发现它运作得很好.
数据模型资源手册,卷.1:适用于所有企业的通用数据模型库
数据模型资源手册,卷.2:特定行业的数据模型库
数据模型资源手册:数据建模的通用模式
我有Vol 1和Vol 2,这些在过去非常有帮助.
这取决于,库存系统不仅仅是计算物品.例如,出于会计目的,您可能需要基于FIFO(先进先出)模型了解库存的会计价值.这不能通过简单的"收到的库存总量 - 销售库存总量"公式来计算.但他们的模型可能很容易计算出来,因为他们会随着时间的推移修改会计价值 我不想详细说明,因为这不是编程问题,但如果他们发誓,也许你并不完全理解他们必须满足的所有要求.
两者都有效,视情况而定.当满足以下条件时,前者最佳:
要求的项目数量相对较少
很少或没有特殊情况需要考虑(退货,调整等)
不经常需要库存物料数量
另一方面,如果您有大量项目,几个例外情况和频繁访问,维护项目数量将更有效
还要注意的是,如果你的系统有差异,然后它有缺陷,应追踪并消除
我已经完成了两种方式的系统,两种方式都可以正常工作 - 只要你不忽略错误!
看看ARTS(零售技术标准协会)数据模型(http://nrf-arts.org).它使用StockLedger表并记录每个项目,并在InventoryJournalEntries中跟踪对库存的更改.