在 Solo 2.0.0 中我们实现了一个重要特性:聚合分类。
Solo 是一款一个命令就能搭建好的 Java 开源博客系统,并内置了 15+ 套精心制作的皮肤。除此之外,Solo 还有着非常活跃的社区,文章分享到社区后可以让很多人看到,产生丰富的交流互动。
信息架构
已有的很多博客系统在文章的信息架构上面都是自顶向下的:
一篇文章只能属于一个分类
分类在发布文章时就已固定
这会带来几个问题:
有的文章很难决定属于某个分类
随着文章越来越多,想要修改文章分类非常困难
分类可能具有时效性,固定分类没法与时俱进
而聚合分类就是来解决这些问题的,并且向前兼容:
一个分类包含多个标签,分类和标签是多对多
浏览分类时根据标签动态聚合出文章列表
设置分类可以随时灵活调整
安装与升级
下载安装包
解压后执行 java -cp WEB-INF/lib/*;WEB-INF/classes org.b3log.solo.Starter
1.9.0 到 2.0.0 升级只需将已有的配置拷贝覆盖即可,启动后会自动升级。
引用来自“晨雨零稀”的评论
居我用wp的经验,不存在你说的那两个问题,可属于多个分类,可随时编辑修改,分类与标签还可以转换引用来自“eechen”的评论
的确.WordPress的分类标签数据库存储设计:
wp_terms <= wp_term_taxonomy <= wp_term_relationships => wp_posts|wp_links
wp_terms(term_id,name):
存储"分类"和"标签"的名字.
wp_term_taxonomy(term_taxonomy_id,term_id,taxonomy,parent):
存储"分类"和"标签"的区分标识(category/post_tag),以及"分类"的父子关系,"标签"并没有父子关系.
wp_term_relationships(object_id,term_taxonomy_id):
存储"文章"/"友链"和"分类"/"标签"的对应关系.
term(分类标签)/taxonomy(分类)/relationship(关系)
wp_term_relationships 的 object_id 对应 wp_posts 的 id 或 wp_links 的 id.
wp_terms 中的 term_id 为"分类"和"标签"编号,对应 wp_term_taxonomy 里的 term_taxonomy_id.
term_taxonomy_id 和 term_id 的值一般都是相同的.
引用来自“晨雨零稀”的评论
居我用wp的经验,不存在你说的那两个问题,可属于多个分类,可随时编辑修改,分类与标签还可以转换WordPress的分类标签数据库存储设计:
wp_terms <= wp_term_taxonomy <= wp_term_relationships => wp_posts|wp_links
wp_terms(term_id,name):
存储"分类"和"标签"的名字.
wp_term_taxonomy(term_taxonomy_id,term_id,taxonomy,parent):
存储"分类"和"标签"的区分标识(category/post_tag),以及"分类"的父子关系,"标签"并没有父子关系.
wp_term_relationships(object_id,term_taxonomy_id):
存储"文章"/"友链"和"分类"/"标签"的对应关系.
term(分类标签)/taxonomy(分类)/relationship(关系)
wp_term_relationships 的 object_id 对应 wp_posts 的 id 或 wp_links 的 id.
wp_terms 中的 term_id 为"分类"和"标签"编号,对应 wp_term_taxonomy 里的 term_taxonomy_id.
term_taxonomy_id 和 term_id 的值一般都是相同的.