gpt4 book ai didi

php - 类别和子类别表结构 - mysql

转载 作者:行者123 更新时间:2023-12-04 15:52:36 27 4
gpt4 key购买 nike

管理员可以创建多个类别和子类别。

例如管理员可以做什么:

cat1                            cat2
->sub1 ->sub1
->sub2 ->sub1_1
->sub3
->sub3_1
->sub3_2
->sub3_2_1
->sub3_2_2
->sub4
sub4_1
-sub5

我不知道什么是最好的选择?我应该一张 table 还是两张 table ?

这是我所知道的:

id    title   parent_cat_id

1 cat1 0
2 sub1 1
3 sub2 1
3 sub3 1
4 sub3_1 3
5 sub3_2 3
6 sub3_2_1 5
7 sub3_2_2 5
...

最佳答案

类别和子类别都只是逻辑“类别”,因此除非您的设计有特定要求,否则无需实现多个物理表(尽管我现在想不出一个... )。

此外,不需要为层次结构中的每个级别专门设置一个结构;您只需要一个在每个“类别”(或“子类别”)级别具有自引用连接到父级的单个表。

我假设在此示例中您的类别(或子类别)可能包含以下元素:

// categories table 
category_id
category_name
element
parent_category_id

这个解决方案很优雅,可以在不更改表格的情况下扩展您的层次结构。

顶级类别的 DML 使用谓词“parent_category_id IS NULL”。

较低级别类别(或子类别)的 DML 使用谓词“parent_category_id = 'whatever the parent category ID is'”。

干杯斯科特

附:我没有足够的代表来响应 Sherif 的答案,而且我可能(读起来可能是)遗漏了一些东西,但是修改后的预序横向(或嵌套集)也可以用一个表来实现; this document 中很好地描述了方法和与 Adjancey 列表的比较。

我同意 Sherif 所描述的每种方法的优缺点。

关于php - 类别和子类别表结构 - mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313337/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com