零件和产品关系模式

时间:2017-03-27 09:41:47

标签: relational-database

我需要库存管理,我们需要跟踪零件和产品(完成货物),我想到下面给出的表格,

Part_Category {id, code, name}
Parts {id, code, name, description, part_cat_id, manufacturer_id, is_salable}
FG_Category {id, code, name}
Finish_Good {id, code, name, fg_cat_id, is_part_also}

is_salable 标志用于表示此部件可以直接出售给客户, is_part_also 表示它是一个子组件(用作另一个部件的一部分) FG)

用例是,

  1. 零件(原材料)已发出生产
  2. 如果FG是子装配(is_part_also),那么可以为生产发出
  3. 某些零件直接销售给客户(如早先销售的FG需要维修,公司应该能够出售所需的零件)
  4. FG无论如何直接销售给客户
  5. 我遇到的问题(使用基于关系的架构)是 -

    • 这是存储和跟踪可销售以及用于生产的零件库存的最佳方式
    • 如果FG库存是一种可以出售并可以生产的半成品,最好的方法是存储和跟踪FG库存

    假设我需要从Parts表中发出所有部件,并且所有物品都是从Finish_Good表中出售的,我有以下问题,

    • 管理数量
    • 由于零件是从零件表中发出的,因此无法从Finish_Good表中生产半成品进行生产
    • 由于可销售的零件也在零件表中,因此无法销售
    • 库存价值仅计入一个地方(如果一部分可销售,其价值显示在FG库存下,零件库存下的半成品价值)

    现在,我正在考虑将生产它们的半成品FG复制到应用程序内部的零件表,并将完整的部件复制到Finish_Good表(当它们被接收时),以便它们全部可用于正确的地方。但这些操作是原子的,看起来容易出错!但是数量也应相应地显示在一个(零件或在Finish_Good中)

    这有更好的设计吗?

1 个答案:

答案 0 :(得分:1)

通过简化整体表格结构并在销售和销售周围定义流程来管理上述用例。原料(RM)生产问题。

  • 仅在零件和零件中存储可用的RM数量FGs Finish_Good表
  • 零件问题等交易只会处理 与零件表
  • 销售仅处理Finish_Good表
  • 交易不需要减少/增加多个表的数量
  • 定义了可销售RM所需数量的流程 在销售前移至Finish_Good并将所需数量的半成品转移至零件表以供生产使用

这简化了表格结构,并有助于在整个系统中维护正确的库存信息。这也有助于审计核对,可以在一个地方纠正库存数量。