數據庫多表設計
一、多表設計之外鍵約束
⒈ 約束
⑴ 約束的作用
約束是用來保證數據的完整性。
⑵ 單表約束
主鍵約束、唯一約束、非空約束。
⑶ 多表約束
外鍵約束:用來保證數據完整性(多表之間)。
⒉ 演示外鍵約束作用
⑴ 創建一個部門表
create table dept(
did int primary key auto_increment,
dname varchar(20)
);
insert into dept values (null,'市場部');
insert into dept values (null,'人事部');
insert into dept values (null,'教研部');
⑵ 創建一個員工表
create table employee(
eid int primary key auto_increment,
ename varchar(20),
salary double,
birthday date,
sex varchar(10),
dno int
);
insert into employee values (null,'張三',8000,'1988-09-01','男',3);
insert into employee values (null,'李四',9000,'1988-09-01','男',1);
insert into employee values (null,'王五',6000,'1988-09-01','男',2);
insert into employee values (null,'趙六',10000,'1988-09-01','男',3);
insert into employee values (null,'孫七',10000,'1988-09-01','男',1);
⑶ 刪除其中的某個部門(是否可以)
查看數據
向剛纔做的這兩個操作(插入一個沒有部門的員工,刪除一個帶有員工的部門)。這種情況都是不應該發生。這個時候需要在多表之間添加外鍵約束。
⒊ 添加外鍵約束
⑴ 在員工表上添加外鍵
⑵ 設置外鍵爲非空
二、 多表設計之表關係的介紹
⒈ 一對多的關係
一對多的例子:一個部門下可以有多個員工,一個員工只能屬於某一個部門。
⒉ 多對多的關係
多對多的例子:一個學生可以選擇多門課程,一門課程可以被多個學生選擇。
⒊ 一對一的關係
一對一的例子:一個公司可以有一個註冊地址,一個註冊地址只能對一個公司。
三、多表設計之一對多關係
一對多關係的建表原則
在多的一方創建外鍵指向一的一方的主鍵
四、多表設計之多對多
⒈ 多對多的關係介紹
一個學生選擇多門課程,一門課程被多個學生所選擇
⒉ 多對多的建表的原則
需要創建中間表,中間表中至少兩個字段,分別作爲外鍵指向多對多雙方的主鍵
五、多表設計之一對一關係
⒈ 一對一關係的介紹
一個公司可以對應一個註冊地址,一個註冊地址只能對應一個公司
⒉ 一對一關係建表原則