【问题标题】:Inventory management database: definition vs. instances库存管理数据库:定义与实例
【发布时间】:2013-09-11 04:19:42
【问题描述】:

在我们公司,我们正在尝试实施适合我们需求的库存管理系统。

我们有几个零件来生产产品(子组件、最终产品):tpart,所以这可以是原子零件、子组件或最终产品。子组件和最终产品由tbom(物料清单)定义:这是定义方。

现在对于实例方面:每个添加的部分或离开我们公司的部分都存储在ttransaction。假设在供应商处订购了 10 个螺栓并在我们公司交付,然后我们使用这些螺栓的 tpart_id 添加交易“+10”。对于我们公司生产的最终产品的相同想法,我们将创建一个“+1”交易来识别最终产品。如果将最终产品运送给客户,则会添加“-1”交易。最终产品由序列号标识。

问题是我们希望能够创建某个部分实例的详细历史记录。某些零件可能存在缺陷,然后将其退回进行维修,之后它们可以再次离开公司,用于同一甚至不同的客户。如果可能,我们还想知道在维修期间更换了产品的哪些部件。

我们的(临时的、部分的)数据库模型如下所示:

ttransaction_info 我认为可能会被省略,ttransaction_info_has_tpart 将包含有关更改/修复的部件的信息。

ttransaction 很大(很多行)时,查询表和执行插入是否仍然足够快?我相信会从这个表中检索到很多数据,而且我已经有几个索引了。

我正在考虑的另一种选择是有一个tinstance 表(与ttransaction 分开)和一个引用tinstance 条目的thistory 表。

这是正确的实施方式吗? 我不确定我应该朝哪个方向前进,所以如果有人能对此有所了解,将不胜感激。

【问题讨论】:

    标签: mysql design-patterns database-design


    【解决方案1】:

    如果您对这个应用程序很认真,我绝对建议您阅读数据模型模式书籍,例如 Hay 的 Enterprise Model Patterns。在亚马逊上评价很高。在 Safari 上便宜。 Silverston 的数据模型资源书的第 2 卷涵盖了 MRP。

    您处于正确的轨道上,您需要担心定义和实例。

    通常,定义/规范称为产品(或商品),实例称为资产。一个产品由其他产品“组成”。

    有几种资产,离散资产(如汽车,带有序列号)、库存资产(如螺栓,您想要其计数但不关心单个螺栓)和批次资产。

    这里的“交易”这个词太模糊了。我建议将“交付”作为更具体的术语。抽象类型是“运动”,有一些需要担心:

    装运是应该发生的事情,而交付是实际发生的事情。

    (入站)供应商发货/交付
    (出站)供应商退货/交货
    (出站)客户发货/交货
    (入站)客户退货/交货
    内部发货/交付

    每个产品几百个动作对于良好的索引应该不是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 1970-01-01
      • 2014-01-13
      • 2017-05-25
      • 1970-01-01
      相关资源
      最近更新 更多