我正在用PHP,MySQL做一个项目。我需要创建一个数据库,其中有一个类别,可以有许多子类别(比如我可以拥有物理,计算机科学,数学等课程书。)
也可能有一些类别没有子类别(比如神话书籍)。
管理员必须通过PHP页面中的表单添加新的类别或子类别,然后更新数据库。
我应该如何设计我的表格的结构,如果管理员要将以下两个案例纳入其中:
管理员只想要添加一个子类别,然后在选择其父类别时,应该完成。
管理员希望添加新的父类别,并且不存在子类别。
请建议我应该如何创建我的表格。
答案 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)