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

标签 php mysql join serialization

<分区>

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

表格示例

项目 |零件 |数量

项目 1 |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

如有任何帮助,我们将不胜感激。

最佳答案

您的项目和零件之间存在多对多关系。

因此您需要 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 |

编辑:如果您想使用查询操作数据,请不要以非数据库 native 格式存储数据。如果您以非 native 格式存储数据,您将很难操纵它,而且速度会很慢。

关于php - 寻找使用 PHP 和 MySQL 存储表的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28097387/

相关文章:

php - 在 PHP 中实现分页

javascript - 插入行时nodejs mysql模块出错

2018年MYSQL日期计算

mysql - 连接多个表时避免重复条目 (MySQL)

mysql - SQL Join涉及3张表,怎么办?

php - 学说在公共(public)模式之外生成实体

php - 使用 php 4.3.9 将数据从数据库转储到 excel 文件

mysql - 如何在mysql中获取经理的员工层次结构?

带有 openSSL 的 PHP - 提供的 key 参数不能被强制转换为私钥

php SimpleXML 检查 child 是否存在