表與表之間的關係的分析,一對一,一對多,多對多的關係

一對多舉例:

一個部門有多個員工,一個員工只能屬於一個部門

一個分類有多個商品,一個商品只屬於一個分類

這就是常見的一個表有主鍵,而另一個表是外鍵的情況

表與表之間的關係的分析,一對一,一對多,多對多的關係

這就是典型的一對多關係,一對多建表的原則是,多的一個字段作為外鍵指向一的主鍵

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,要麼外鍵為該表的主鍵,兩種方式都可以保證唯一


分享到:


相關文章: