目前在做一个产品,产品里包含了文章、问答、图书、课程等
举个例子假如分类如下:
文章分类:前端、后端、运维、数据分析、区块链
问答分类:前端、后端、运维、数据分析、PHP
图书分类:前端、后端、运维、人物传记
然后要设计数据库表结构,一开始我是想每个功能模块下都独立建表。文章分类表、问答分类表、图书分类表。
但我觉得很多分类都类似,比如都有前端、后端、运维,只有部分分类不一样。所以觉得建那么多表有一点冗余,理论上就准备用一张分类表。
但实际用一张表又会发现图书分类里的传记肯定不会出现在问答里,那如何控制分类在不同模块下的显示,有个思路在这个分类上增加一个父分类也就是一级分类,相当于一级分类就是功能模块名称如文章、问答、图书、课程),然后二级分类前端、后端、运维、传记。二级分类有多个一级分类。但是我不确定这种方案是否合适?
所以请教大家如何设计方案会比较好一些。
*另外我做的是分类,不是标签,标签系统已经做了。
建多张表确实感觉有点冗余,做二级分类感觉更加合适。
感觉需要考虑的点在于二级分类是否允许关联多个一级分类。就是比如说有个需求,要根据前端关键词要把所有一级分类或者部分一级分类(文章分类+问答分类)的信息全部拉取出来,这个时候就要做成多对多关联。如果说只存在一级分类下对二级分类相关内容的检索,那就不需要做那么复杂了。