我第一次尝试这样做时,在类别表中创建了一个名为query的字段.包含如下字符串:
brand = “Burberry” AND type != “Watch”
然后我将其插入到查询的WHERE子句中以查找类别的产品.
那可能不是最好的设计.
我的第二次尝试是使用标记系统.我会创建一个标签表,其中包含Burberry和Watch等标签.我有一张桌子将标签绑在产品上(HABTM).我还有一个表格将标签绑定到类别.
将标签绑定到类别的表有一个名为include的额外字段,如果它是1,则所有选定的产品也必须具有该标记.或者,如果它是0,那么所有选择的产品都不能包含该标签.
这似乎是一个比我原来更好的设计,但它需要一些非常复杂的连接.
现在我需要再次解决这个问题.
一个区别是我现在使用CakePHP(1.3)框架.
在我尝试重新发明轮子之前.我想知道是否有任何已知的模式/解决方案我可以使用?
解决方法:
可能你现在已经以某种方式完成了,但这是我的2cents:
我会删除类别< - >标记,因为我觉得你不必要地用它来复制数据.
即表格应该只是category,categories_products,products,products_tags和tags.
这条路:
>当您从类别中添加或删除产品时,您无需为更改类别标签而烦恼
>您的搜索将变得更加统一(因为只有一个标记表)
>你的标签仍然不会超过3个JOINS – 这很舒服:)
标签:php,mysql,database-design,cakephp
来源: https://codeday.me/bug/20190710/1419846.html