我的问题可能会让人感到困惑,但是当我找到更好的单词时,我会相应地编辑它。这不是一个直接的编码问题,而是关于如何处理这个设计问题的更多建议。
在我们的数据库模型中,我们将所有用于制造的产品(组件,组件,材料)和成品出售在同一个表"products"
中。我们销售的每个产品和装配都将其BOM保存在单独的数据透视表"product_boms"
中。它有点像这样:
Table: products
- id
- sku_number
- name
- type
- ...
Table: product_boms
- id
- product_id (FK to products table)
- child_product_id (FK to products table)
- quantity
如您所见,表"product_boms"
定义了某些产品的子产品列表。这是此产品的整个BOM的一部分。部分原因是此处的子产品可以在"product_boms"
表中定义更多子产品。
我需要为特定产品创建整个BOM的树视图。这很容易在代码中完成,但是会导致许多SQL查询,因为我需要查找每个子产品,如果它还有其他子项...我现在正在研究SQL,如果有可能用一个查询?我知道这可以通过存储过程实现,但不能使用那些......
名为“product_x”的产品的最终结果(BOM)如下所示:
- product_x
- component_a
- component_b
- assembly_a
- material_a
- component_c
- component_d
- assembly_b
- material_b
- component_e
- component_f
- component_g
我还可以选择重新定义数据库模型,以便更有效地节省物料清单,更好地将数据库从数据库中取出。接受任何建议。