我试图用MySQL工作台制作数据库图表。像这样:
users
--FK user_logins
--FK user_tabs
----FK tab_favorites
--FK user_settings
...
但是当我在图表中建立一些关系时,MySQL Workbench会为每个表创建额外的列作为外键。因此,如果我有20个与users
表相关的表,它将在users
表中生成20个额外的列。
我在DB中是n00b,但这看起来很糟糕。最好将users.user_id
FK用于所有其他表吗?如果是,如何使用MySQL工作台图工具制作它?
答案 0 :(得分:2)
为了重用现有列,请使用最后一个工具按钮创建1:n关系。然后根据需要选择源列和目标列。
答案 1 :(得分:1)
这是因为你是以错误的方式定义关系。
我认为user
可能与多个(例如)logins
有关,因此外键列必须位于login
表中。
请注意,术语"外键"是引用外表的列的名称(正式地,引用的列必须是主键)。例如:
User Login ------- ------- id (PK) id (PK) name login ... user_id (FK to user.id) <== this is the foreign key ------- ... -------