博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tag标签数据库的设计
阅读量:7069 次
发布时间:2019-06-28

本文共 405 字,大约阅读时间需要 1 分钟。

方案一:

一个表,里面有个tags字段,存放以空格或逗号分隔的标签。缺点是长度受限,tag个数受限,查询like ‘%abc%’效率低

方案二:

同方案一,支持全文索引,或者用Lucence索引查询

方案三:

 两个表,第一个表存储对应的文章等,第二个是tags表,存放第一个表的外键和tag的名称。解决了第一个方案的个数受限问题,不过这样的话会有冗余,比如两个表都有同样的tag名,则会出现两次。

方案三:

三个表,第二个tags表,第三个关联表,典型的,最常规的设计,tag支持树状层级,缺点是千万级数据量的话关联表会非常大!

还有第五种第六种方案,比如增加缓存层,把例如针对”TagA+TagB”的查询缓存1小时,增加冗余列,例如TagA, TagANumber(内容个数), TagB, TagBNumber …

 

参考:http://www.ifanybug.com/article/00119.html

转载地址:http://mhqll.baihongyu.com/

你可能感兴趣的文章
分页技术之PageDataSource类
查看>>
How to: Create Instances of ASP.NET User Controls Programmatically
查看>>
关于 python中的 TKinterlistbox 控件加横竖滚动条
查看>>
【leetcode】258. Add Digits
查看>>
PHP5.6.x的新鲜事
查看>>
面对对象编程 理解思想
查看>>
ibatis 读取数据库数据,没有查询到,则返回的java对象为null
查看>>
浏览器的兼容模式下的button中文字垂直方向不居中显示
查看>>
软件系统复杂性(1/2)
查看>>
vue 创建项目
查看>>
编译自己的gcc
查看>>
RecyclerView使用详解(一)
查看>>
解决问题:由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。...
查看>>
二阶段之七
查看>>
Spring笔记——依赖注入
查看>>
UVa11988 Broken Keyboard (a.k.a. Beiju Text)
查看>>
在 MongoDB 中查找缺失的数据包
查看>>
jquery ajax分页原理
查看>>
Sql Server系列:数据表操作
查看>>
openstack theme topic
查看>>