2 jiangboyao1993 jiangboyao1993 于 2016.04.04 22:33 提问

当一条记录拥有不确定个数个tag时,怎么设计数据库结构,又怎么通过tag来进行检索? 5C

1.就以知乎为例吧,一个问题可能有多个tag来进行标注,这些tag是用怎么的结构在数据库中存储的呢?
很多人说再整理出一张tags的表,和一张tags和id对应的表,有谁能够详细说明一下这个东西怎么设计?
2,当进行检索的时候,怎么能够快速高效地通过tag/tags来进行检索呢?

3个回答

caozhy
caozhy   Ds   Rxr 2016.04.04 22:45

假设你的主表叫topic,主键id
tags表作为关联表,结构为id topicid tag,外键topicid
进行关联查询

或者在topic表增加一个字段叫tags,用逗号分隔直接存。

或者出于性能的考虑,同时保持以上两个设计,也就是存在冗余的数据。

u012377333
u012377333   Rxr 2016.04.05 19:59

看一下数据库的三大范式。
重新新建一张表;管理问题和tag之间的关系。

GuYueDream
GuYueDream   2016.04.07 16:14

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!