Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL数据库-可互换(替代)材料表_Sql - Fatal编程技术网

SQL数据库-可互换(替代)材料表

SQL数据库-可互换(替代)材料表,sql,Sql,我的一个项目有一个小问题。在我的数据库中,我有3个表: -materials [ID_material, material] -products [ID_product, product] -bill_of_materials [ID_product, ID_material, quantity] 每个产品都有一个定义的BOM表。在制造产品时,有时您没有BOM中指定的材料,但有一种可以互换的替代材料。我需要将另一个表添加到我的数据库中,在那里我可以指定哪些材料是可互换的。我该如何设计这张

我的一个项目有一个小问题。在我的数据库中,我有3个表:

 -materials [ID_material, material]
 -products [ID_product, product]
 -bill_of_materials [ID_product, ID_material, quantity]
每个产品都有一个定义的BOM表。在制造产品时,有时您没有BOM中指定的材料,但有一种可以互换的替代材料。我需要将另一个表添加到我的数据库中,在那里我可以指定哪些材料是可互换的。我该如何设计这张桌子

例如:

 We have 4 different materials: A, B, C, D
 We have a product: myProduct
 And we have a bill of material for myProduct: 1 unit of A + 2 units of B
材料B、C和D不相同,但具有相同的特性a电容器具有相同的规格,但由不同的制造商制造-每个都必须在我的数据库中具有不同的ID。
在我的软件中,我需要检查BOM中的物料库存。如果没有足够的库存,我需要检查替代材料,如果它存在-不是所有的材料都有可互换的副本。对于这样的示例,您将如何在数据库中设计表

这可能取决于问题的复杂性,但如果没有可用于首选材料的替代材料,为什么不建立一个替代材料表来搜索替代材料:

-alt_material[ID_Material, Alt_Material]
可能还有其他成分,包括不同数量的替代材料(如果有多种可用),以及替代材料并非始终是特定于产品的合适替代品,这可能会增加问题的复杂性:

-alt_material[ID_Product, ID_Material, Alt_Material, Preference_ID, Qty]
然后,您的系统可以搜索替代材料列表并搜索库存,以确定是否存在合适的替代品


希望这有帮助

“可交换”是材料的属性吗?i、 e.某个电容器是否总是可互换的,或者您必须始终为某些产品配备正确的电容器?i、 电路板A可以有任何电容器,电路板B必须有电容器x,然后最简单的是在BOM表中添加另一个“优先级”列。然而,如果产品不关心,那么有另一个桥接表是有意义的,定义“电容器10uF”,这反过来又指向一个10uF电容器列表,其中有一个制造商列来区分它们