文章目录
- 文件夹结构
- 可以有多个功能吗?
- 标签是如何保存的
- 标签做成对外接口
- 保存、修改
- 查询
- 删除
- 标签列表
- 标签表设计
- 标签和分类的区别
虽然大体知道怎么设计做,但是整理出来更清晰,那么整理下。
一般来说有两种索引就够。
1、标题文字索引。 # 用于搜索文章
2、标签索引。# 大数据时根据关键字展示
博客主要就用到这两种索引。
文件夹结构
例如标签目录为:
/tag/function/interface # 一般功能
/tag/article/interface # 文章功能
tag # 根目录
function # 功能目录
interface # 具体标签
可以有多个功能吗?
当然可以,但是需要注意的是,特定功能标签返回的id只能对照特定表记录。
否则怎么根据id捞取数据呢?
标签是如何保存的
可以分为两部分。
一部分是逗号分隔的本记录标签。 展示的是否拆分即可。
一部分是存入到bitmap中的标签。 根据标签检索的时候方便。
这两部分是一致的。
如果是以文章为维度查看信息,根本用不到bitmap,只有反向检索时才会用到bitmap。
标签做成对外接口
保存、修改
传参:
功能代码,标签列表,id(可能是文章id,也可能是其他功能)
动作:
对应功能代码内,每个bitmap都保存或修改下数据。
查询
传参:
功能代码,标签列表
动作:
查出对应的id列表
删除
传参:
功能代码,标签列表,id(可能是文章id,也可能是其他功能)
动作:
对应功能代码内,每个标签删除id。
标签列表
注:界面展示的标签列表,实际是基于某一功能的标签。
例如博客的标签列表,肯定都是博客相关的。
标签表设计
id # id
root_dir # 根目录
function_code # 功能代码
function_name # 功能名称
tag_code # 标签代码
tag_name # 标签名称
create_date # 创建时间
update_date # 修改时间
标签和分类的区别
以csdn为例。
标签是为了文章在网络搜索时方便。
分类是个内部的概念,便于博主管理文章。
标签如果怕太多,可以限制个数,如每篇文章最多8个、10个标签。