我有一份文章清单,这些文章属于各种类别。
有时类别会有子类别,点击该类别将显示该类别的所有子标题文章,点击子类别将仅显示子类别的所有文章。
我无法弄清楚架构。
文章
id | title | article | category_id
分类
id | title
如何在类别表中表示子类别?
如何整理数据,以便轻松获取属于某个类别的所有文章,并获取属于子类别的文章?
答案 0 :(得分:1)
通常,您会在类别表中引入parent_category_id
列,该列将类别和子类别链接在一起。
当然,您必须小心不要将类别链接到自身,如果您有多个子类别级别,那么您希望避免出现循环。
您可以通过id和parent_category_id之间的类别的自联接提取子类别,然后加入文章表。
如果您有可以加入类别或子类别的文章,那么:
(select id from category where id = 3
union all
select id from category where parent_category_id = 3)
...为您提供一组类别ID,您可以加入这些类别ID以查找完整的文章集。