php中的子类别

时间:2017-03-26 19:20:19

标签: php mysql

我正在用PHP,MySQL做一个项目。我需要创建一个数据库,其中有一个类别,可以有许多子类别(比如我可以拥有物理,计算机科学,数学等课程书。)

也可能有一些类别没有子类别(比如神话书籍)。

管理员必须通过PHP页面中的表单添加新的类别或子类别,然后更新数据库。

我应该如何设计我的表格的结构,如果管理员要将以下两个案例纳入其中:

  1. 管理员只想要添加一个子类别,然后在选择其父类别时,应该完成。

  2. 管理员希望添加新的父类别,并且不存在子类别。

  3. 请建议我应该如何创建我的表格。

1 个答案:

答案 0 :(得分:0)

创建一个名为'categories'的表,其中包含列'id','name','parent'。

然后像这样使用它:

1, Hardware, null
2, Storage, 1
3, Video, 1
4, Harddisks, 2
...

以下是书籍的简单示例:

分类表:

+----+--------------------+--------+
| id | name               | parent |
+----+--------------------+--------+
|  1 | Comics             |   NULL |
|  2 | Programming        |   NULL |
|  3 | SQL/PHP            |      2 |
|  4 | Java               |      2 |
|  5 | Marvel             |      1 |
|  6 | Mythological Books |   NULL |
+----+--------------------+--------+

书籍表:

+----+---------------------------------------+----------+
| id | name                                  | category |
+----+---------------------------------------+----------+
|  1 | PHP/MYSQL for dummies                 |        3 |
|  2 | Iron Man and the prisoners of azkaban |        5 |
+----+---------------------------------------+----------+

如果您想在编程> SQL / PHP类别中显示所有书籍,您只需使用选择查询即可获得它们。

mysql> select * from books where category = 3;
+----+-----------------------+----------+
| id | name                  | category |
+----+-----------------------+----------+
|  1 | PHP/MYSQL for dummies |        3 |
+----+-----------------------+----------+
1 row in set (0,00 sec)