数据库关系,外键和图表 - MySQL工作台

时间:2014-03-14 14:41:48

标签: mysql database mysql-workbench diagram

我试图用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工作台图工具制作它?

2 个答案:

答案 0 :(得分:2)

为了重用现有列,请使用最后一个工具按钮创建1:n关系。然后根据需要选择源列和目标列。

enter image description here

答案 1 :(得分:1)

这是因为你是以错误的方式定义关系。

我认为user可能与多个(例如)logins有关,因此外键列必须位于login表中。

请注意,术语"外键"是引用外表的列的名称(正式地,引用的列必须是主键)。例如:


        User         Login
        -------      -------
        id (PK)      id (PK)
        name         login
        ...          user_id (FK to user.id)     <== this is the foreign key
        -------      ...
                     -------

相关问题