首先,如果标题含糊不清,我想道歉,这个问题很难概括 - 请随时进行适当的编辑。
在我正在构建的网站中,我的类别中的产品(并且类别正在不断扩展)具有属性(我想不出更好的词,我很抱歉这与数据库术语交叉,但我的意思是属性,如颜色、大小、重量,而不是数据库表的字段)。这些属性可能会或可能不会根据类别定义,有时具体取决于产品。
现在,使用该网站的个人将希望创建一个查询来搜索与特定属性匹配的项目(认为“是绿色的,重量小于 4 磅,评级为 3 星或更高”),并将该查询作为元组保存在数据库中他们可以参考的表格。请注意,这些将是最终用户,因此他们将无法自己实际编写查询。另请注意,某些类型的查询可能存在大量冗余,并且这些查询的数量将比项目数量多得多。
我的第一个想法:
将所有项目存储在一个表 ( items
) 中,并带有id
, category id
, name
。attribute_types
用id
, name
,存储属性类型type
(可以是 int、string、enum 等)。item_id
使用、attribute_type_id
和将属性存储在单独的表中value
。
然后,根据 HTML 选择创建查询,就好像我实际上是在查询数据库一样,保存确切的查询,并将其作为字符串存储在带有id
and的表中query
。在存储之前检查查询是否存在。
这似乎可行,但我无法想象这是最好的方法。有没有更有效,或者坦率地说不那么丑陋的解决方案?我什至是否以适当的方式存储这些物品?
谢谢你,詹姆斯