我正在尝试使用MySQL为我的项目设计一个类似标签的结构。
在阅读了这个http://forge.mysql.com/wiki/TagSchema之后,我感到非常失望,因为m2m表的设计需要如此多的join,性能在大数据上确实很糟糕。
我想到的是一个标签表,其中每个标记都有一个name和一个id。
然后,在我要标记的items表上,每个条目都有一个名为tag的列,每个标记将其位索引标记为1,否则位字段为0。
例如
table: tag
id name
1 tag1
2 tag2
3 tag3
table: item
id name tag (in binary) tag (in array)
1 item1 00000001 [tag1]
2 item2 00000100 [tag3]
3 item3 00000110 [tag2, tag3]因此,如果我想查找带有特定标记的item,我只需要使用&标记id来查找二进制标记字段。
提前感谢!
发布于 2012-07-26 11:37:36
不,多到多关系所需的两个连接不需要大量数据,这是一个基本的设计模式,而且MySQL在加入方面非常快。如果有超过32个不同的标记(或者如果使用BigInt数据类型,则是64个),您的设计就会中断--您能找出原因吗?另外,通常最好先考虑应用程序的实现,然后再考虑性能问题。
https://stackoverflow.com/questions/11665327
复制相似问题