分类与标签系统设计初体验-起
来源:互联网 发布:js控制滚动条位置 编辑:程序博客网 时间:2024/06/05 09:07
需求
假设我这里有一堆freebuf或者看雪上的cve漏洞分析的文章,文章数目已经超过1w条,这时候打算按照攻击方法或者受害者对象来分门别类,建立一棵有条理的知识树。
需求分解
数据库:存储1对1或者1对多的标签关系存储,(可以用关系型数据库或者nosql来实现);
操作:能够方便的增删改查;
操作响应速度:不要太慢,(需要使用索引或者cache加速复杂查询的速度);
3种思路
数据库设计
关系型数据库实现方式
1. 标签列表直接保存文章条目中。
思路代码:
优点: 实现简单,容易管理
缺点:删除一个标签随文章属增长而变慢
2. 使用3张表(文章表,文章与标签关系表,标签表)实现一对多的对应关系。
思路代码:
文章表
关系表
标签表
优点: 实现简单,容易管理,tag内容不会出现冗余
缺点: 多种类别的标签处于同一维度,分类混乱
改进: 标签表可以插入一列,记作tag type,就能实现标签的分类了。但是类别本身的从属关系还是无法表示。比如([日本:[书名:[火影],人物:[鸣人]]], 日本系列的该如何表示)
3. 使用nosql数据库,标签随便加,看着跟第一中思路一样会有冗余,但是增删改会很方便。
性能优化
先提一个主流的思路,建立一级到两级索引表,然后利用redis的高性能key-value查询做cache。
0 0
- 分类与标签系统设计初体验-起
- 新闻资讯类系统 ---- 文章分类和标签的设计
- 分类与标签
- 用户分类及标签设计
- 文章分类标签数据库设计
- 设计与用户体验
- 如何设计标签系统
- Cobar 初体验——系统概要设计
- SSS 系统的设计分类
- 签名档设计与用户体验
- JPS自定义标签初体验。
- 用户标签系统 数据库设计
- 用户标签系统 数据库设计
- 用户标签系统 数据库设计
- macOS系统初体验
- 设计模式编目与分类
- 设计模式透析与分类
- WordPress Blog 的分类与标签研究
- storm trident读取kafka中数据
- golang时间戳格式化与解析
- 在屏幕上添加一个可移动,可点击的悬浮按钮。
- springmvc+ajax+json从页面传数据到后台,以及后台传Map集合到ajax解析
- 查询自己的外网地址
- 分类与标签系统设计初体验-起
- Struts2 xml配置的讲解
- Leetcode148:Sort List
- UIPI VS与Win7 共舞:用户界面特权隔离
- Android Studio2.2版本升级后遇到的问题汇总
- List<Map>排序
- 单元测试启动spring容器
- Welcome to Ningbo Acro Fluid Control Co., Ltd.
- nor flash启动与nand flash启动的区别