mysql中mapping标签的作用_3种高效的Tags标签系统数据库设计方案分享
需求背景 目前主流的博客系统、CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分。相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的映射表来增加系统的负载和查询的效率。 数据库设计方案1 此方案分
需求背景
目前主流的博客系统、CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分。相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的映射表来增加系统的负载和查询的效率。
数据库设计方案1
此方案分为2个表:
1.Tag表
2.文章表
Tag表表结构:
tagid # tag标签的ID
tagname #tag内容
num #当前Tag的引用个数
文章表结构:
ID #文章ID
title #文章标题
tags #tags列表,多个以,分割
tagid #tags的ID 多个以,分割
...
此种方式Tag标签主要内容保存在 文章表 中,对于Tag表的压力较小,只是添加的时候更新一下Tag的引用数量,但是查询的时候效率不足,不是好办法
数据库设计方案2
第二种方案使用2个Tag表,其中一个保存Tag信息,另一个保存映射信息:
Tag表:
tagid # tag标签的ID
tagname #tag内容
num #当前Tag的引用个数
Tagmap表
tagid
aid
文章表
ID #文章ID
title #文章标题
tags #tags列表,多个以,分割
...
这种形式,每次发布内容和修改内容的时候 都去更新一下Tag表和 Tagmap表。
查询的时候需要从Tagmap表中查找响应的文章ID,然后使用文章ID去查询具体的文章信息,因为每次查询都是使用索引,所以效率较高。
数据库设计方案3
前两种方案都是使用纯粹的Mysql来设计的,第三种方案将使用Nosql的魅力来设计。
基本结构同方案2,只是在Tag表和Tagmap表中使用mongo/redis这样的nosql数据库服务器,这样可以发挥nosql数据库强大的线性查询能力。
1) 第一种方式的表结构设计与方案2完全相同,只是数据库服务器换了。
2)其他的方案,当然是发挥Nosql的线性能力来设计存储的Key了,尤其是使用redis的时候,使用的Key的结构可以完美的提高查询效率
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
mysql中mapping标签的作用_3种高效的Tags标签系统数据库设计方案分享相关推荐
- 3种高效的Tags标签系统数据库设计方案分享
需求背景 目前主流的博客系统.CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分.相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的 ...
- delimiter在mysql中的作用_细细研究MySql中delimiter起到的作用_MySQL
MySql中delimiter究竟可以起到些什么作用呢?可能不少人都有这样的疑惑,下文就为您介绍MySql中delimiter的作用,供您参考. MYSQL导出一个SQL后: DELIMITER $$ ...
- html中center的作用,html center标签的作用是什么?html center标签的应用实例解析
html center标签的作用是什么?html center标签的应用实例解析都在本篇文章里.主要介绍了html center标签的定义及使用说明,还有关于HTML中center和align的区别 ...
- mysql 创建函数 split_在mysql中实现split函数的几种方法
在mysql中实现split函数的几种方法 关注:98 答案:2 mip版 解决时间 2021-02-07 11:27 提问者夜落花台 2021-02-07 02:11 在mysql中实现spli ...
- MySQL中,关联查询的3种写法…
原文地址:MySQL中,关联查询的3种写法(USING/ON) 作者:王小安 看看下面三个关联查询的 SQL 语句有何区别? [sql] view plain copy SELECT * FROM ...
- MySQL中for update的作用和用法
一.for update定义 for update是一种行级锁,又叫排它锁. 一旦用户对某个行施加了行级加锁,则该用户可以查询也可以更新被加锁的数据行,其它用户只能查询但不能更新被加锁的数据行. 如果 ...
- mysql中的foreignkey的作用_mysql中的外键foreign key
一.如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键. 一张表中可以有多个外键. 外键的默认作用有两点: 1.对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段 ...
- MySQL中 修改语句使用的关键字是什么_表示修改一个数据库对象的SQL关键字是什么...
表示修改一个数据库对象的SQL关键字是:ALTER.在数据库中,可以使用"ALTER TABLE"语句来改变原有表的结构,可以在已有的表中添加.删除或修改列. 本教程操作环境:wi ...
- mysql中井号的作用_URL 链接中 井号#、问号?、连接符 分别有什么作用?
在一个 URL 中可以包含很多的内容,其中不仅仅是包含 26 个英文字母,10 个罗马数字,中文汉字,还可以拥有井号"#".问号"?".连接符"&am ...
最新文章
- jquery中对小数进行取整
- java安装_Java开发中更多常见的危险信号
- 进阶学习(3.9) Bridge Pattern 桥接模式
- 【NOIP2013模拟】黑魔法师之门
- 连续处理函数reduce
- 成功解决python\ops\seq2seq.py TypeError: ms_error() got an unexpected keyword argument 'logits'
- 隐藏模块(无模块注入)
- 5分钟学会区块链 - 开发一条区块链 Develop BlockChain with Tendermint
- [js] 使用ajax请求真的不安全吗?为什么?
- ubuntu给pip换源,给conda换源
- 微软补丁服务器部署方案,Windows server 2012 r2 单wsus部署成功,需要更新补丁的服务器已有域控该怎么出解决方案...
- 一、Fiddler抓包工具 — Fiddler介绍与安装
- 编译原理——自下而上语法分析
- RuntimeError: generator raised StopIteration(python带我起飞报错)
- linux lzma命令,linux lzma安装
- Maven 自问自答
- 华为mate30pro和华为p40pro有什么区别
- linux的三权分立设计思路和用户创建(安全管理员、系统管理员和审计管理员)
- Google OR-Tools(一) Get Start
- 店铺每日生意营业流水记账本