我使用MySQL Workbench中的Forward Engineer工具根据我输入的表格生成数据库。我能够填充我的桌子,例如“村民”,“鱼”和“项目”,用于我在Stardew Valley游戏周围建立的数据库。然而,当我在ER图表中链接表格时,它根据关系创建了新表格,例如Cooking_Has_Fish,因为许多鱼类可以用于许多食谱中,许多食谱可以使用许多鱼类。但是,一旦我填充了烹饪和鱼类表,生成的Cooking_Has_Fish表中就没有任何内容。我试图了解这个表如何运作或如何使用它,或者它是否需要填充,我错过了什么。
感谢阅读。
答案 0 :(得分:1)
没有表格自己填充,您需要确保它已填充。为多对多关系创建的第三个表称为associative or junction table,并且至少包含它们加入的2个表的主键。
如果您有recipe_id
个识别收件人和fish_id
识别鱼,那么Cooking_Has_Fish
表将至少包含recipe_id
和fish_id
字段。
如果您想将fish and chips
(recipe_id
1)与cod
(fish_id
为2)关联,那么您可以执行以下插入操作:
insert into Cooking_Has_Fish (`recipe_id`, `fish_id`) values (1,2)
这意味着鳕鱼是鱼类和薯条的必需品。您可以在关联表中添加其他字段,例如鱼和薯片需要多少鳕鱼。
总结:您必须根据您希望如何关联具有多对多关系的实体(表格)来填充关联表。