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

Mysql 如何使用物料清单的父子记录创建简单的数据关系,mysql,asp.net,vb.net,ms-access,Mysql,Asp.net,Vb.net,Ms Access,我正在尝试开发一个简单的BOM(物料清单)管理器,它应该在不同的关系级别(父子记录)管理数千个组件 我想知道在一个表中注册所有组件(祖父、父母和孩子),然后使用某种SQL查询(例如CTE)查询数据的最佳解决方案是什么。在我的表格中,我需要解决另一个问题:在某些情况下,一个孩子在多个家长中使用,但特定家长的孩子数量会发生变化。我有一个孩子叫博尔特。对于特定的父级,我使用10(十)个螺栓。对于另一个父级,我使用20(二十)个螺栓(具有相同零件号的相同螺栓)。同时,同一个父母可以被几个祖父使用,以此类

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

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

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

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


多谢各位

组装
组件
对我来说就像是一种自然的关系

由于
组件
可能是许多程序集的一部分,而
程序集
可以有许多组件,因此我希望在它们之间有一个多对多联接表。您可以在联接或
组件
表上有一个数量列

与所有表一样,具有的程序集表也必须具有主键。让我们称它为ASSEMBLY\u ID。同样,组件表也将有自己的主键:Component\u ID


联接表是一个名为ASSEMBLY\u COMPONENT的单独表。它有两列:ASSEMBLY_ID(返回到ASSEMBLY表的外键)和COMPONENT_ID(返回到COMPONENT表的外键)。ASSEMBLY_COMPONENT的主键是(ASSEMBLY_ID,COMPONENT_ID)。

谢谢您的回答。对不起我的无知,但当你说“连接表之间”将是一个单独的表?我能理解的是,为了使用搜索表单访问部件和组件,例如,在插入零件号进行搜索的地方,我必须在单个表中进行搜索。如果我搜索一个部件,当我访问这个部件的详细信息时,我可以展开它的所有子部件,包括子部件和组件,然后查看BOM表。如果我搜索单个组件,我可以获得有关该组件的信息。我会在谷歌上搜索如何建模物料清单。这是一个老问题,可能有一个行之有效的解决方案。这里有一个例子:就是这样!非常感谢你!