【发布时间】: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