我目前正在创建一个使用多个仓库(具有子位置)的库存管理系统,因为这是我的第一个大项目,我希望得到一些反馈。
让我告诉你到目前为止我做了什么...... Link as Im still new here
您首先需要创建一个仓库,然后您可以在该仓库中创建一个位置。
您还可以创建ItemType(ItemGroup),然后可以为该组创建一个Item。
一旦你有了一个物品和地点你可以添加股票,Stock表格就有了一个复合键,因此无法添加重复项。我还添加了一个约束,以便您无法在仓库/位置输入错误的ItemType,相同约束的Item。
然后,我需要保留每个库存,SerialisedItems和NonSerialisedItems的记录。示例:如果添加的数量为10的非序列化库存,那么我当前在NonSerialisedItems表(1)中创建10行,这些行设置为“库存中”,并带有相关的库存信息。如果他们更改了库存量,则会删除或添加行(2)。我也可以使用类似于Warehouse的Van表,但是我认为我必须将Warehouse表更改为类似Storage的两个表,Warehouse和Van?
(1)我目前在我的页面上添加了一个TransactionScope,添加了x行数,这是处理它的最佳方法吗? (2)Stock表中的Quantity数量必须计算该项目的行数,然后每次添加或删除库存时更新数量,这里有任何问题吗? - 两个问题都已修复 - 仅为序列化项目创建行。
还有其他问题吗?
这就是我所做的,如果它的好或可怕让我知道。 此外,如果有任何陷阱,我应该留意,这也很好知道。
由于
[编辑] 感谢Neville K我做了一些改变......
Link to new and improved database
这似乎更有意义!想想昨天我一直盯着它看吧!
答案 0 :(得分:2)
首先,这几乎是一个已经解决的问题 - 我所知道的最好的资源是“data model resource book”系列;那里有一个非常灵活的库存维护应用程序模型。
其次,您的设计不是很规范化,并且依赖于大量的重复。不确定是什么原因,但通常情况下,“stock”表会有“item”的链接,而不是“itemType” - 项目属于项目类型的事实已经在项目和项目之间的关系中捕获类型,您不需要复制它。位置和仓库也是如此。
我建议的关键变化是股票交易的概念,而不是单个“股票”表。
的内容
TransactionID date itemID locationID quantity
------------------------------------------------------------------
1 1/1/12 1 1 10
2 1/2/12 1 1 -1
3 1/3/12 1 1 20
要找出物品的当前库存,您可以逐项汇总(数量);要找到按地点细分的项目的当前库存,您可以按项目,位置求和(数量)。
1月1日,库存中有10件商品;在第二个,1项被删除,留下9的股票; 3日,20件新产品上市,余额为29件。
此设计允许您跟踪随时间的变化,这是一个常见的要求;它还通过创建交易元数据(operatorID,发票号等)提供审计跟踪。