我有一个数据存储要求,其中每个项目都有多个字段,每个字段可能包含多个值(字符串)。我需要运行一个搜索查询,其中将根据一个或多个字段值选择项目。这是我需要的结构:
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的数据库设计搜索查询的任何建议。
答案 0 :(得分:1)
简单的“一对多”应该有效:
通过使用每个“子”表联接ITEM进行搜索。
如果您希望限制属性值,您可以执行“真正的”多对多:
因此,一个项目不能与TASTE表格中已有的味道相关联(等等其他类型的属性)。
或者您甚至可以制作通用模型,因此您不限于任何特定的属性集:
警告:这非常灵活,您现在只需要使用一个表来加入,但是一致性更难以实施,并且可能需要在应用程序级别进行。
答案 1 :(得分:0)
多值属性的标准设计是多对多表 - 这通常包括由两个外键组成的复合主键 - 每个连接表一个。
关于这些的查询将涉及这个多对多表。