我正在设计一个小型数据库,我遇到了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)
);
答案 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)
);