0

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

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

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

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

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

在此处输入图像描述

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

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

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

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

4

1 回答 1

2

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

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

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

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

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

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

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

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

于 2013-09-10T17:38:28.130 回答