网站首页 文章专栏 博客系统分类与标签逻辑设计
博客系统分类与标签逻辑设计
创建于:2019-06-18 07:27:35 更新于:2024-04-19 20:57:20 羽瀚尘 1070
网站 网站,next-blog

背景

这两天都在修改codebear的动态博客,并且打算把它当成其他网站的基础。碰到了分类和标签的逻辑设计。

数据库

使用leancloud的数据存储,应该是NoSql

Article 表

id title name category_pointer
文章id 文章标题 标题 指向分类的指针

Category 表

id name count
分类id 分类名 计数器

Tag 表

id name count
标签id 标签名 计数器

TagMap 表

id tag_pointer article_pointer
map id 指向tag的指针 指向article的指针

逻辑关系

假设文章含有内容、分类、标签三项,本地提交的文章称为新文章,云端的称为旧文 1. 新文章可能更换了分类,现分类可能是已有的,也可能是新建的 2. 新文章可能更换了标签,现标签可能是已有的,也可能是新建的 3. 分类、标签都要有自己的计数器 count,统计该条目下的文章数量 4. 文章删除后进入回收站,分类、标签的计数值都要减1 5. 文章新建、发布、更新后都要考虑1,2两项内容,并更新计数器

  1. 文章发布后再次更新,发布时间不能变,更新时间做更新
  2. 文章发布后撤回,发布时间置空,更新时间做更新

问题

  1. 草稿箱、回收站中的分类和标签是否要纳入计数范围? 目前是纳入计数范围了,不然要使后台和普通页面看到的计数值不一样,会很难做

TODO: - [ ] 应该对前后迭代的几个版本做详细描述 20190617提出