数据库设计:在

时间:2017-12-16 02:32:44

标签: mysql

我正在设计一个小型数据库,我遇到了2个表的问题。我有一个团队和registeredAccount表。注册帐户可以有0或1个团队。团队有一个团队经理,这是一个注册帐户。

我正在努力将registeredAccountId链接到团队表中。发生sql错误,说它无法在团队表中添加外键。

如果有人对如何更好地设计这个有任何建议,那就太好了。

以下是我的表格:

CREATE TABLE team(

    teamId       INT PRIMARY KEY,
    teamName         VARCHAR(20),
    teamManagerId   INT,
    CONSTRAINT team_fk_registeredAccount
        FOREIGN KEY (teamManagerId)
        REFERENCES registeredAccount(registeredAccountId)
);

CREATE TABLE registeredAccount(

    registeredAccountId  INT PRIMARY KEY,
    displayName      VARCHAR(20),
    subscribed       BOOLEAN,
    teamId       INT,
    CONSTRAINT registeredAccount_fk_team
    FOREIGN KEY (teamId)
        REFERENCES team(teamId)
);

1 个答案:

答案 0 :(得分:1)

无需在注册帐户上设置外键,因为它可以为空且独立于团队 一个团队有一个团队经理。这是你设置关系的地方。

CREATE TABLE team(

    teamId       INT PRIMARY KEY,
    teamName         VARCHAR(20),
    teamManagerId   INT,
    CONSTRAINT team_fk_registeredAccount
        FOREIGN KEY (teamManagerId)
        REFERENCES registeredAccount(registeredAccountId)
);

CREATE TABLE registeredAccount(

    registeredAccountId  INT PRIMARY KEY,
    displayName      VARCHAR(20),
    subscribed       BOOLEAN,
    teamId       INT,
    CONSTRAINT registeredAccount_fk_team
        FOREIGN KEY (teamId)
        REFERENCES team(teamId)
);