正确关联 MySQL-table 内容

Relating MySQL-table content correctly

我在数据库中有以下表格:

我想将这些表格的内容关联如下: 一个产品由许多 assembly_steps 组成。 assembly_step 可以有不同的部分和警告。所以我建表

关联数据。 ...has...-tables 通过外键与其相关伙伴连接。我用 MySQL-Workbench.

建模

我对关联信息的机制感到困惑。我如何在 PHP 中编程?

我认为您首先要在最低级别添加内容,即零件和警告。然后添加装配步骤并关联数据。但我不知道该怎么做。

在这里您可以找到概述:Database-Model

您不会在 PHP 中对此进行编程,您会在 mysql 中完全处理它。在 mysql 中的结构方式将是这样的:

assembly_steps   
assembly_id
assembly_description (or something like that

assembly_id是主键

parts
part_id
part_name

part_id是主键

assembly_steps_has_parts    
assemply_id
part_id

在这个 table 中,您将有一个 双主键 。程序集和零件 ID 都是外键 AND 各自 table 的主键。

双主键的工作方式是两个键在一个[=47=上组成一个主键].这意味着它不是限制为 1 个键,而是将 table 限制为这些键的任何 组合 之一。

例如:

pk1  pk2
1     1
1     2
1     3
2     1
2     2
2     3

您可以像这样查询它们(这是一个通用查询,但基本思想)

select a.assembly_description, p. part_name
from assembly_id a
join assembly_steps_has_parts ats
on a.assembly_id = ats.assembly_id 
join parts p
on ats.part_id = p.part_id

你会为其他 table 做同样的事情。从那时起,您只需在 php 中调用您的查询结果,就像您处理任何其他查询的方式一样。

关系数据库将 entities/values 关联起来,将它们一起记录在 table 中的一行中。

要将 assembly_steps 关联到部件,只需在 assembly_steps_has_parts 中插入一行,例如如果您在 $assembly_step_id 中有 assembly_step_id,并且在 $part_id 中有 part_id,那么:

INSERT INTO assembly_steps_has_parts (assembly_steps_id, parts_id)
VALUES ($assembly_step_id, $part_id)