多对多关系中,除了传统范式的关联表,还有别的什么设计?

2013-03-17 13:37:32 +08:00
 darasion
比如传统的关联表设计:

post 表:
id, title, content

tag 表:
id, name

post_tag 表:
post_id, tag_id

--
在某些特定情况下(例如:性能是主要瓶颈时)有没有更好的设计?

都有哪些情况不应该用这种设计?
3839 次点击
所在节点    MySQL
3 条回复
alsotang
2013-03-17 17:41:46 +08:00
我也想知道。。。不过貌似没人回答哈。。。
keakon
2013-03-17 18:09:04 +08:00
如果你的 tag 的范围是能预先确定,并且种类不超过 64,可以用 SET 类型。
如果 tag 不需要重命名,且使用 PostgreSQL 的话,可以用数组类型。

不过在 tag 表较小,post_tag 表正确设置了索引的情况下,还存在性能问题,就表示你的业务模型不适合关系型数据库。
darasion
2013-04-20 22:59:30 +08:00
@keakon 多谢多谢.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/63205

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX