作为一个练习,我正在构建我的第一个SQL数据库。我试图为我的数据库中的所有表创建语句。我想知道是否有任何外键可以被删除?MySQL加入多个表+ FK
我的第二个问题是如何对这个数据库进行查询,该数据库在4个或更多的表上使用连接。
任何答案将appriciated!
CREATE TABLE CLUB(
cl_id INT PRIMARY KEY NOT NULL,
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
dtm_oprichta TEXT NOT NULL
);
CREATE TABLE STADION(
sta_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
capaciteit INT NOT NULL,
dtm_bouw TEXT NOT NULL
);
CREATE TABLE TECHNISCHDIRECTEUR(
td_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht CHAR NOT NULL,
dtm_geboorte TEXT NOT NULL
);
CREATE TABLE FINANCIEELDIRECTEUR(
fd_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht CHAR NOT NULL,
dtm_geboorte TEXT NOT NULL
);
CREATE TABLE HOOFDTRAINER(
ht_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
td_id INT REFERENCES TECHNISCHDIRECTEUR(td_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht CHAR NOT NULL,
dtm_geboorte TEXT NOT NULL
);
CREATE TABLE ASSISTENTTRAINER(
at_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
ht_id INT REFERENCES HOOFDTRAINER(ht_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht CHAR NOT NULL,
dtm_geboorte TEXT NOT NULL
);
CREATE TABLE SPELER(
sp_id INT PRIMARY KEY NOT NULL,
cl_id INT REFERENCES CLUB(cl_id),
ht_id INT REFERENCES HOOFDTRAINER(ht_id),
naam TEXT NOT NULL,
adres VARCHAR(200) NOT NULL,
salaris REAL NOT NULL,
nationaliteit TEXT NOT NULL,
geslacht CHAR NOT NULL,
dtm_geboorte TEXT NOT NULL,
positie TEXT NOT NULL,
rugnummer INT NOT NULL
);
你想查询返回什么? – Barmar
如果需要,您可以删除所有外键,完全取决于您是否希望数据库强制实施表间的一致性。 – Barmar
@Barmar非常感谢您的回答!如果你明白我的意思,我希望表格尽可能地相互链接。例如,斯佩勒已经链接到俱乐部沟槽Hoofdtrainer权利?所以我可以在Speler中删除club_id PK吗? 对于查询它并不重要,我只需要找到一个在4个或更多表上使用连接的查询。 – user259191