如何使用物料清单的父子记录创建简单的数据关系

Posted

技术标签:

【中文标题】如何使用物料清单的父子记录创建简单的数据关系【英文标题】:How to create a simple data relationship using parent child records for a Bill of Materials 【发布时间】:2016-12-21 20:29:00 【问题描述】:

我正在尝试开发一个简单的 BOM(物料清单)管理器,它应该管理数千个处于各种关系级别的组件(父子记录)。

我想知道在单个表中注册所有组件(祖父、父母和孩子)然后使用某种 SQL 查询(例如 CTE)查询数据的最佳解决方案是什么。在我的表中,我需要解决另一个问题:在某些情况下,一个孩子被多个父母使用,但特定父母的孩子数量发生了变化。例如:我有一个孩子叫博尔特。对于特定的父级,我使用 10(十)个螺栓。对于另一位父母,我使用 20(二十)个螺栓(具有相同零件编号的相同螺栓)。同时,同一个父级可以被多个祖父使用,依此类推。

对于这个解决方案,我在 ASP.NET(使用 VB.NET)中创建了一个 Web 窗体,并且我在 MS ACCESS 中使用了一个简单的数据库。在我的程序中,我使用的是 OLEDB 提供程序。

请看下面我的表格示例,称为“组件”:

Example for Table 'Components'

非常感谢!

【问题讨论】:

【参考方案1】:

AssemblyComponent 对我来说是一种自然的关系。

由于Component 可能是许多程序集的一部分,而Assembly 可以有许多组件,因此我将在它们之间创建一个多对多联接表。您可以在 JOIN 或 Component 表中添加数量列。

您的装配表具有主键,所有表都必须如此。我们称之为 ASSEMBLY_ID。同样,您的 Component 表将有自己的主键:COMPONENT_ID。

您的 JOIN 表是一个名为 ASSEMBLY_COMPONENT 的单独表。它有两列:ASSEMBLY_ID,它是返回到 Assembly 表的外键,以及 COMPONENT_ID,它是返回到 Component 表的外键。 ASSEMBLY_COMPONENT 的主键是 (ASSEMBLY_ID, COMPONENT_ID)。

【讨论】:

感谢您的回答。对不起,我的无知,但是当你说“JOIN table between”会是一个单独的表吗?我能理解的是,为了访问组件和组件,使用搜索表单,例如,我在其中插入零件号进行搜索,我必须在单个表中进行搜索。如果我搜索一个装配体,当我访问这个装配体的详细信息时,我可以展开它的所有子零件,包括子装配体和组件,然后查看物料清单。如果我搜索单个组件,我可以获得有关该组件的信息。 我会在 Google 上搜索如何为物料清单建模。这是一个老问题,可能有一个经过验证的、陈旧的解决方案。 这是一个例子:sqlblog.com/blogs/john_paul_cook/archive/2009/11/06/… 就是这样!非常感谢!

以上是关于如何使用物料清单的父子记录创建简单的数据关系的主要内容,如果未能解决你的问题,请参考以下文章

sap 如何跟踪生产订单的修改记录

SAP 物料清单 BOM

ERP之物料清单(BOM)

SAP MM中采用批次号管理是啥?管理的物料采购这块还是仓管这块?若设置为采用批次号管理,如何在后台配

如何从具有父子关系的模型中获取下一个和上一个记录

运用SAP系统,求下面操作的步骤(跪求)