标签表的一些问题

发布于 2022-09-04 21:52:03 字数 2298 浏览 34 评论 0

刚学习mysql对mysql不熟悉,现在我有这样子的三个表格

文章表

idtitlecontent
0helloworld
1hey....

问题表

idtitlecontent
0helloworld
1hey....

标签表

idnameavatar
1java....
2js....

两个表都共用一个标签表,标签表的avatar是标签的头像,每个标签都有属于自己的头像或者默认的头像。
我现在的问题是怎么把标签表和其他两个表关联起来? 要保证能根据标签id快速的查出文章或者话题。

我想的第一个解决方案是在文章表和问题表的下面加一个tags的字段。用逗号分开(不知道好不好...),然后我发现我特喵的不会查 ... 这样要怎么查询呢... 使用like吗...

文章表

idtitlecontenttags
0helloworld0,1
1hey....2,3,4

问题表

idtitlecontenttags
0helloworld1,4
1hey....6,3

然后我又想了第二个方案,因为文章表和问题表的结构基本上完全一致,我是不是可以把它们合并起来呢?

问题和文章标的结合体....

idtitlecontenttagstype
0helloworld1,4article
1hey....6,3question

然后我又觉得不应该合并吧?因为分开的话数据库没那么大,如果我只是想找全部标签为1的问题,单表查询的话会快一些吧?

之后又想了第三个方案,弄一个关联表怎么样呢,话说这个关联表需要id的吗 ... 不是很懂.. 如果有了关联表,那么文章和问题的表是不是就不需要tags字段了呢。

关联表

aq_idtag_id
01
16
04
13

这样子查询好像比较简单? 直接一条select语句就搞定了,并且查询速度也还好 ... 但是随着时间的增长,这个关联表肯定会有超多的数据,这时候这个查询应该会很慢吧?

希望有人解答一下... 提前谢谢各位

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暮年 2022-09-11 21:52:09

你一开始相处的解决办法tags是可以查询的,tags每个数字前后都用符号隔离开,用like查询例如, ,1,11,31,当查询1的时候可以tags like ”%,1,%“。这样应该能查出来。

倾城°AllureLove 2022-09-11 21:52:06

首先,你给出的文章表和问题表看得我眼花..结构相同就算了吧,数据还相同...
其次,你一开始相处的解决办法tags是不可取的...很难对tags进行修改,而且就像你说的,很难查询;
至于文章表和问题表的合并,完全没有必要,这涉及到数据库的设计,可以去了解下数据库的范式;
最后,关联表的想法就很好,利用aq_id和tag_id也是正确的。至于你说以后可能会有超多的数据,放心吧,且不说mySql不是吃素的,数据多这个问题在你以后的学习当中也会得到解决的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文