标签:
分类是无限分类,即每个分类必须属于一个父分类,最顶级的分类父分类id为0。
一篇文章,应该如何和分类进行关联?传统的做法就是在文章表中有一个category_id字段对应分类id,即一篇文章属于一个分类。
但是现实情况中经常会出现一种需求:要求一篇文章可以在不同的分类下展示,这里不同的分类不是指有父子关系的分类,对于这个问题我知道两种做法:
对于方案1,缺点就是后期维护麻烦,一旦发现文章有错误需要修改,就不得不多次修改,而方案2没这个问题,但是在管理上有问题,比如删除分类同同时删除关联文章,不得不检查文章是否还关联了其他分类。
其实对于方案2,后来有了一种更加完美的替代方案,那就是tag,tag粒度很细,每篇文章都可以有多个tag,我们只需要一个tag表和tag关系表即可完成文章和tag的关联,同样,不管删除文章或tag,我们只需要删除tag关系即可,我们可以通过不同的tag聚合不同分类但是某些领域有关联的文章。
有一些激进网站完全采用tag替代了分类,这里我想了很久,最终决定采用tag+分类的方式,因为考虑到tag比较细散,而我还是要对文章进行一个更高纬度的分类的,我的方案是这样:
如果把文章比作图书,那分类就像图书馆里的书架,而tag的话,就好像图书馆检索系统里的关键词索引。
-完-
标签:
原文地址:http://my.oschina.net/cxz001/blog/364967