我正在尝试创建一个项目数据库,其中每个项目都可以具有多个属性。我还有一个容器表(容器可以容纳物品)。每个容器都有多个必需的属性。项目属性必须满足容器属性的要求,才能使项目适合容器。
注意:可以随时添加新属性。
Example:
Item 1 Attributes
Color: Red
Material: Aluminum
Length: 100
Width: 200
Rating: 4
Container 1 Required Attributes:
Color=Red
Material=Aluminum
Length<105
Width<300
Rating=4
我想找到适合容器的所有物品。如果容器必需属性表有一个比较器字段,我可以获取容器 1 的所有必需属性,然后根据比较器字段动态生成查询。我不是数据库专家,但这似乎不是一个好的设计。
另一种选择是拥有多个容器必需属性表 - 一个用于最大值,一个用于最小值,一个用于等值数字,一个用于等值字符串等。
Example:
Container 1 Maximum Attributes
Length: 105
Width: 300
Container 1 Minimum Attributes
<none>
Container 1 Equal Attributes (Float)
Rating: 4
Container 1 Equal Attributes (String)
Color: Red
Material: Aluminum
在这种情况下,我不必动态生成查询,但这似乎也不是最好的解决方案,因为我最终将需要用于 >= 和 <= 的表。
有人对更好的设计有什么建议吗?