php - mysql | mysql | PHP |在自己的表中加入

标签 php mysql codeigniter

我不知道我做的是对是错,请不要评判我... 我想做的是,如果一条记录属于父记录,那么它将具有与其关联的父 ID。让我向您展示下面的表架构。

enter image description here

我有两列 项目类别 ID & 项目父类别ID

假设 ItemCategoryID =4 上的记录属于 ItemCategoryID =2,则 ID 4 上的 ItemParentCategoryID 列将具有 ItemCategoryID 的 ID。

我的意思是一个循环,在它自己的表中..

但问题是如何运行选择查询:P 我的意思是向他们的 parent 展示所有 parent 和 child ..

最佳答案

这通常是一种懒惰的设计选择。理想情况下,您需要一个用于这些关系或/和一组深度的表格。如果 parent_id 的父级可以拥有自己的 parent_id,这意味着潜在的无限深度。

MySQL 并不热衷于无限嵌套深度。但php不介意。要么在循环中运行多个查询,例如 Nil'z's1,要么考虑获取所有行并在 php 中将它们排序到数组中。如果您几乎总是获得所有行,那么最后一个解决方案很好,从而使 My​​SQL 过滤过时。

最后,考虑一下您的数据库结构中是否可以有更理想的方法。不要害怕为此使用多个表。

  1. 这在未来可能会成为一个强大的性能窃贼。每次页面加载时,无法控制的 mysql 查询量很容易失控。

关于php - mysql | mysql | PHP |在自己的表中加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586167/

相关文章:

php - 只抓取 x 个字符 - 怎么做?

MySQL加入最大值

mysql - 提交到数据库后,输入字段保留空白并带有特殊字符

php - 无法使用 PHP 和 Codeigniter 从 PHP Azure 连接到 SQL Server Azure

php - 无法访问获取 dBase 数据。登录页面不断循环回到同一页面

php - ajax成功但不发送发布数据

php - 插入用户在MYSQL中创建的多个选项卡的数据

php - 将文本文件导入数据库

php - 查看 SQL 数据库上的锁定 - Azure

php - 将 MySQL 连接转换为 JSON 数组