我需要使用过滤器查询我的数据库,用户将选择颜色,大小和类型。每个都用int表示,以便更快地查找。
因此在用户表单上,红色的值将为1,蓝色将为2等。
这是我的数据库结构:
衣服
id | title | color | size | type
1 jacket 1 2 1
然后我查询这个:
SELECT * FROM clothes WHERE color IN (1,2) AND size IN (3,5) AND type IN (8,10)
我的问题是,如果表现不佳,那么我可以改变我的数据库结构并提高性能。
所以将衣服表改为
id | title
1 jacket
有一个类别表,可存储所有可能的类别,无论它们是什么类型 - 将颜色与大小混合,例如:
id | category
1 red
2 blue
3 small
4 large
5 funky
6 classic
喜欢这些带有支点:
id | clothes_id | category_id
1 1 2
2 1 4
3 2 1
并使用加入查询?
哪种方法表现更好?