【发布时间】:2013-05-16 16:12:34
【问题描述】:
我正在构建一个支持标签过滤器的搜索引擎。下面是我的数据库的结构,它是多对多表
product_table
id name
1 p1
2 p2
3 p3
tagged_table
id pid tid
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 2 1
7 2 2
8 3 1
9 3 2
10 3 4
tag_table
id tag_name
1 t1
2 t2
3 t3
4 t4
5 t5
tagged_table.pid 指的是 product_table 的 id
tagged_table.tid 指的是tag_table的id
如果我想在找到任何匹配项时返回结果并按匹配的大多数情况的数量对结果进行排序,如何构建最快的 sql 查询?
【问题讨论】:
-
“最快”是一个奇怪的要求,当你没有任何要求时。尝试自己解决您的问题并返回更具体的内容,例如有效的查询
-
已更新,我担心性能,因为它经过大量查询
-
哈哈!和谷歌进行多对多规范化 (en.wikipedia.org/wiki/Many-to-many_(data_model))
-
是的,目前的设计很糟糕
-
如果只有一个人想被教。 OP 经常在这里提出一些问题,并期望所有的工作都会为他完成,这样他就可以将其复制粘贴到他们的项目中。在那种情况下,我的行为会被视为“粗鲁”和“无益”
标签: mysql search-engine