寻找使用PHP和MySQL存储表的更好方法

0 php mysql serialization join

我是PHP和MySQL的新手,需要帮助解决我面临的问题.我正在尝试创建一个比以下更清洁的表:

表格示例

项目|部分|数量

Item1 | 123 | 2

第1项| 124 | 2

第2项| 123 | 1

第2项| 125 | 3

我可以使用普通表执行此操作,但我可以设想数据库具有大量具有重复数据的重复行.例如,我多次使用Item1来识别每个部分.

我想知道是否有更简洁的方法将这些数据存储在我的数据库中?我将使用PHP将数据存储到MySQL中.我也希望使Item列唯一,但就目前而言,不能这样做.

我查看了序列化,连接以及数组,但我无法弄清楚如何使它完全适合所以我想我会问这里.最终结果将是PHP报告,其中说:

第1项使用以下部分

第123部分:数量2

第124部分:数量2

第2项使用以下部分

第123部分:数量1

第125部分:数量3

任何帮助将不胜感激.

A.D*_*.D. 5

您的商品和零件之间存在多对多关系.

所以你需要3个表(item,part和link_item_part).

您的项目表将具有id作为主键.您的零件表也是如此.你的link_item_part表将有两个外键的复合主键构建,一个是项目,另一个是部分.

-- item table
| id | name   |
+----+--------+
|  1 | Item 1 |
|  2 | Item 2 |

-- part table
| id | name |
+----+------+
|  1 |  123 |
|  2 |  124 |
|  3 |  125 |

-- link_item_part
| item_id | part_id | quantity |
+---------+---------+----------+
|       1 |       1 |        2 |
|       1 |       2 |        2 |
|       2 |       1 |        1 |
|       2 |       3 |        3 |
Run Code Online (Sandbox Code Playgroud)

编辑:如果要使用查询操作数据,请不要以数据库本机的格式存储数据.如果以非原生格式存储数据,您将很难操作它,而且速度很慢.