本文是[链接]的一个章节,该系列文章将介绍 [链接] 这款 Java 博客系统是如何从无到有的,希望大家能通过它对 Solo 从设计到实现有个直观地了解、能为想参与贡献的人介绍清楚项目,也希望能为给重复发明重新定义博客系统的人做个参考 标签聚合分类 后台定义分类,并配置该分类包含的标签 查询某个分类文章列表时通过 分类 ..

Solo 标签聚合分类

本文是《Solo 从设计到实现》的一个章节,该系列文章将介绍 Solo 这款 Java 博客系统是如何从无到有的,希望大家能通过它对 Solo 从设计到实现有个直观地了解、能为想参与贡献的人介绍清楚项目,也希望能为给重复发明重新定义博客系统的人做个参考 ❤️

标签聚合分类

  1. 后台定义分类,并配置该分类包含的标签
  2. 查询某个分类文章列表时通过 分类->标签集->标签关联的文章 进行聚合

也就是说一篇文章在编辑时仍然是只需要打标签,访问分类时会根据该分类包含的标签将文章筛选出来。这是一个自底向上的信息架构,更灵活一些。

信息架构

大部分博客系统的信息架构都是自顶向下的:

这会带来几个问题:

而聚合分类就是来解决这些问题的,并且向前兼容:

关于信息架构更多的知识,推荐两本书:《用户体验要素》《信息架构》

分类 - 标签文章列表查询

查询逻辑实现分为 3 个步骤:

  1. 根据分类 id 查询分类下的标签,得到标签 id 列表
  2. 根据标签 id 列表 IN 查询标签 - 文章关联表,得到文章 id 列表
  3. 根据文章 id 列表 IN 查询文章表,得到文章列表

没有使用数据库层的关联查询,设计思路请看 Solo 表结构,具体代码请参考 ArticleQueryService#getCategoryArticles 方法。


回到全文目录:《Solo 从设计到实现》

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    712 引用 • 5414 回帖 • 698 关注
  • 设计
    87 引用 • 550 回帖 • 1 关注
  • 文档
    51 引用 • 949 回帖 • 1 关注
回帖   
请输入回帖内容...