我有一个数据存储需求,其中每个项目都有几个字段,并且每个字段可以包含多个值(字符串)。我还需要运行一个搜索查询,其中将根据一个或多个字段值选择项。下面是我需要的结构:
Name: (this will be the name of an item)
Season: (name of the season)
Taste: (1 taste or several)
Funktion: (1 or several option)
Weight: (1 or several)
Volume: (1 volume or several)
Tips: (for comments)
Flavor combinations: (1 or several)
Matching flavors: (several)请对MySql的数据库设计和搜索查询提出任何建议。
发布于 2012-02-08 00:44:57
一个简单的“一对多”应该是可行的:

您可以使用每个“JOINing”表按子项进行搜索。
如果你想限制属性值,你可以做一个“真正的”多对多:

因此,一个项目不能与品味表中尚未存在的品味相关联(对于其他类型的属性也是如此)。
或者,您甚至可以创建一个通用模型,这样您就不会受到任何特定属性集的限制:

注意:这非常灵活,您现在只需要连接一个表,但一致性更难强制执行,可能需要在应用程序级别执行。
发布于 2012-02-05 06:45:36
多值属性的标准设计是一个多对多的表-这通常由一个由两个外键组成的复合主键组成-每个连接表一个。
对这些表的查询将涉及这个多对多表。
https://stackoverflow.com/questions/9145185
复制相似问题