MySQL Workbench正向工程师关系表

时间:2017-04-19 16:33:20

标签: mysql database entity-relationship forward-engineer

我使用MySQL Workbench中的Forward Engineer工具根据我输入的表格生成数据库。我能够填充我的桌子,例如“村民”,“鱼”和“项目”,用于我在Stardew Valley游戏周围建立的数据库。然而,当我在ER图表中链接表格时,它根据关系创建了新表格,例如Cooking_Has_Fish,因为许多鱼类可以用于许多食谱中,许多食谱可以使用许多鱼类。但是,一旦我填充了烹饪和鱼类表,生成的Cooking_Has_Fish表中就没有任何内容。我试图了解这个表如何运作或如何使用它,或者它是否需要填充,我错过了什么。

感谢阅读。

1 个答案:

答案 0 :(得分:1)

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

如果您有recipe_id个识别收件人和fish_id识别鱼,那么Cooking_Has_Fish表将至少包含recipe_idfish_id字段。

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

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

这意味着鳕鱼是鱼类和薯条的必需品。您可以在关联表中添加其他字段,例如鱼和薯片需要多少鳕鱼。

总结:您必须根据您希望如何关联具有多对多关系的实体(表格)来填充关联表。