请教大神一个按分类精准查询并排序的表设计方式
比如有个行业分类结构如 1-2-3 , 1-2-4 , 5-6-7
如图:

信息表可以关联多个终极行业
比如 信息1关联行业3,7, 信息2关联行业4,7, 信息3关联行业7
那么排序逻辑是 最精准的排第一,包含父级排第二,包含祖级排第三
如果我来个搜索条件行业分类是 3
那么排序结果应该是 信息1,信息2
如果搜索条件来的行业分类是4,7
那么排序结果应该是 信息2,信息3,信息1
关于 LearnKu
比如有个行业分类结构如 1-2-3 , 1-2-4 , 5-6-7你应该放一个表结构 :flushed:这个只搜索行业分类id为3的,应该只出现信息1才对吧
这个搜索行业分类id4、7,结果应该有信息1、信息2、信息3
如果需要这个结果
那么排序结果应该是 信息 2, 信息 3, 信息 1我认为将行业分类作为信息的子集,然后通过统计每个信息所匹配到的子集数量来排序
@ware 如果搜索条件是行业3,是有信息2的 因为行业3的父级是行业2 而信息2关联的行业4,7中 行业4的父级也是行业2,所以也是匹配到了的,但没有信息1精准所以排在后面。
我是有想过查出所有关联的信息 然后匹配子集的数量来排序,但每次查询所有信息都查出来感觉不太好,所以问问有没什么更好的方法来设计表
@www295686243
信息 2 关联的行业 4,7 中 行业 4 的父级也是行业 2那就是说也要匹配同级的行业分类咯
处理方案: 每搜索一个行业分类的时候,就要把同级的行业分类和父级所有的分类都需要检索
排序方案继续使用每个信息所匹配到的子集数量来排序,例如刚才同级分类 因为没有关联的子集,所以子集数量是0,只不过这样的逻辑还是太复杂了,只能通过代码来处理吧 :joy:
kalnoy/nestedset 能解决你的问题吧
@ware :joy:目前就是检索到所有关联的 然后通过计算来处理排序,就是看起来检索的数据量会有点多,看起来也只能这样了