MySQL Workbench 正向工程师关系表

MySQL Workbench Forward Engineer Relationship Tables

我使用 MySQL Workbench 中的 Forward Engineer 工具根据我输入的 table 生成了一个数据库。我能够填充我的 tables,例如 "Villagers," "Fish," 和 "Items" 我正在围绕游戏 Stardew Valley 构建的数据库。但是,当我在 ER 图中链接 tables 时,它会根据关系创建新的 tables,例如 Cooking_Has_Fish,因为许多鱼可以用于许多食谱,许多食谱可以使用许多鱼。但是,一旦我填充了 Cooking 和 Fish tables,生成的 Cooking_Has_Fish table 中就没有任何内容。我试图了解此 table 的功能或使用方式,或者是否需要填充它,但我错过了一些东西。

感谢阅读。

没有 table 会自行填充,您需要确保它已填充。为多对多关系创建的第三个 table 称为 associative or junction table 并且至少包含它们加入的 2 table 的主键。

如果你有一个 recipe_id 识别食谱和一个 fish_id 识别鱼,那么 Cooking_Has_Fish table 至少会有一个 recipe_id 和一个 fish_id 字段.

如果您想将 fish and chipsrecipe_id 1)与 codfish_id 为 2)相关联,那么您将执行以下插入:

insert into Cooking_Has_Fish (`recipe_id`, `fish_id`) values (1,2)

这意味着 "fish and chips" 需要鳕鱼。您可以在关联中添加其他字段 table,例如鱼和薯条需要多少鳕鱼。

总而言之:您必须根据您希望如何关联彼此具有多对多关系的实体 (tables) 来填充关联 tables。