一對多舉例:
一個部門有多個員工,一個員工只能屬於一個部門
一個分類有多個商品,一個商品只屬於一個分類
這就是常見的一個表有主鍵,而另一個表是外鍵的情況
這就是典型的一對多關係,一對多建表的原則是,多的一個字段作為外鍵指向一的主鍵
ALTER TABLE emp ADD CONSTRAINT fk_emp_dept FOREIGN KEY(deptno) REFERENCES dept(deptno)
多對多舉例
多對多也很常見,比如選課系統,一個學生可以選擇多門課程,而一門課程可以被多個學生選擇,所以課程表和學生表就是多對多關係,要想形成這種關係,還需要第三張表的幫助,第三張表要至少有兩個字段,這兩個字段要分別作為學生表和選課表的外鍵,這樣再第三張表的配合下,就形成了多對多的關係了。
CREATE TABLE stu(
sid INT PRIMARY KEY AUTO_INCREMENT,
sname VARCHAR(50)
);
CREATE TABLE teacher(
tid INT PRIMARY KEY AUTO_INCREMENT,
tname VARCHAR(50)
);
CREATE TABLE stu_tea(
sid INT,
tid INT,
CONSTRAINT fk_student FOREIGN KEY(sid) REFERENCES stu(sid),
CONSTRAINT fk_teacher FOREIGN KEY(tid) REFERENCES teacher(tid)
);
或者建好第三章表之後
第三張表結構為
至此就完成了多對多的建立
一對一
一對一不是很常用,比如你家在唯一地址,一個地址對應唯一的家庭,他的建表原則有兩種:
一對一必須要求從表的外鍵也必須唯一,所以要門unique,要麼外鍵為該表的主鍵,兩種方式都可以保證唯一
閱讀更多 幻風的編程日記 的文章