0

作为学校项目,我正在为五金店创建一个简单的库存/POS 系统。

我想知道如何正确实施对库存/库存数量和商品销售的监控。截至目前,我的产品表中有一个“QuantityOnHand”字段。这是存储股票总数的地方。每当进行销售时,我都会在“QuantityOnHand”字段中减去已售商品的数量,并将这些商品保存在两个相关的表中,“Sales”用于记录交易,“SalesItems”用于已售商品。

这种设计在大多数情况下都可以,但我无法创建一个报告,将过去一天/一周的剩余物品数量与当前减去销售/缺陷物品的剩余余额进行比较,因为物品的数量没有被正确跟踪并且仅保存在单个字段中。

我如何设计数据库以使我可以正确监控项目的数量?

4

1 回答 1

2

您必须仔细分析您的所有报告要求并设计您的表格,以便直接实现您的目标。

但是,创建一个表来存储可能看起来像这样的股票事件通常是一个好主意:

  • eventid - 此事件的唯一标识符。
  • productid - 产品/项目 ID
  • eventtype - 标识事件的类型(例如接收、销售、丢失、补货、计数、转入、转出等...)
  • 时间戳 - 事件发生的时间。
  • stockinglocationid - 标识仓库/商店/...
  • . . .

仅创建股票事件,它们永远不会更新。这是获得所需分析的关键。

由此,您应该能够在之前为任何产品重构 qoh。

对于销售,除了数量、价格、产品 - 客户类型、客户国家/地区/州/城市、销售地点、销售人员之外,您当然还需要各种其他数据点。. . 将此表视为不可变的,就像股票事件一样。

我鼓励您使用谷歌搜索“库存星模式”和“销售星模式”。这应该让您思考如何最好地组织您的数据以进行报告。

于 2018-12-06T11:55:20.713 回答