hotline

News center设计类新闻

设计类新闻

当前位置:主页 > 设计类新闻 >

新闻资讯类系统 ---- 文章分类和标签的设计

2020-11-16

  博客、 CMS(网易新闻、 腾讯新闻) 之类的系统, 核心就是文章, 一切的一切都围绕着文章进行, 所以设计一个好的文章分类和标签的数据库关系模型, 对后续编码及维护将会起到至关重要的作用。

  一篇文章, 比如 《大陆 ** 明星又离婚了》 这属于 「娱乐」 类新闻, 又属于 「中国」 分类下的新闻, 所以文章和分类的关系一般是 1 对 N 。

  就以只有分类为例(是否含子分类其实原理类), 这样其实 left join 就可以出来结果, 但是这样的结果不适合展示, 因为多个分类查出的一篇文章就有几行结果(对于 SQL 来说几个分类就几条数据), 所以在后台管理的文章列表页面中, 一次查文章, 还有一次根据文章 id 查出所有分类, 两次查询结果和起来才能显示一条结果,如下表所示:

  还是以《大陆 ** 明星又离婚了》 为例, 可以打上标签 「明星」、 「大陆」、 「离婚」、 「娱乐」, 是一种 N 对 N 的关系。标签的作用是什么呢? 一个是你可以根据标签更快地搜索到你想要看到的所有文章, 一个是网站可以利用标签的使用次数展示出热门标签(如某些博客展示一个部分标签, 有的字体大, 有的字体小, 可能就是根据标签的引用数来设置字体大小, 从而突出展示热门标签)。

  为什么要设计中间表呢?使用一张中间表, 查询从 article_to_tag 查找相应文章 id, 然后根据 id 查找文章, 使用二级索引, 查找效率高。 索引可以参考笔者的这篇文章:索引的设计。

地址: 电话: 邮箱:
ICP备案编号: