数据库中有三种主外键关系图:
(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)
);