数据库中有三种主外键关系图:
(1)一对一关系:
(2)一对多关系(两种):
总图:
注意:在数据库中如果某列是FK,那么这列所在的表就意味着多。另外的表就是一。
如下图:
四张表的结构展示了上面所有的三种关系图:
创建的脚本(Oracle)
CREATE TABLE PKFK_B
(
pkb VARCHAR2(10) NOT NULL PRIMARY KEY,
column1 VARCHAR2(10),
column2 VARCHAR2(20),
column3 VARCHAR2(10)
);
CREATE TABLE PKFK_D
(
pkd VARCHAR2(10) NOT NULL PRIMARY KEY ,
column1 VARCHAR2(10),
column2 VARCHAR2(20),
column3 VARCHAR2(10)
);
CREATE TABLE PKFK_A
(
pka VARCHAR2(10) NOT NULL PRIMARY KEY,
column1 VARCHAR2(10),
column2 VARCHAR2(20),
column3 VARCHAR2(10),
FOREIGN KEY(pka) REFERENCES PKFK_B(pkb)
);
CREATE TABLE PKFK_C
(
pkc1 VARCHAR2(10) NOT NULL ,
pkc2 VARCHAR2(10) NOT NULL ,
fkc VARCHAR2(10),
column1 VARCHAR2(10),
column2 VARCHAR2(20),
column3 VARCHAR2(10),
PRIMARY KEY(pkc1,pkc2),
FOREIGN KEY(pkc2) REFERENCES PKFK_D(pkd),
FOREIGN KEY(fkc) REFERENCES PKFK_B(pkb)
);