1. 程式人生 > >MySQL之表的關系

MySQL之表的關系

mysql bold per span spa pre start pri num

MySQL之表的關系

表的關系:

一對一:1:1

eg:一個人只有一個身份證

註:通過添加關鍵字段的方式來實現 一對一 關鍵字段加哪個都可以

-- 方法一
CREATE TABLE t_Person(
id INT PRIMARY KEY AUTO_INCREMENT,
uname VARCHAR(10)
);

CREATE TABLE t_card(
id INT PRIMARY KEY AUTO_INCREMENT,
start_time DATE,
end_time DATE,
pid INT UNIQUE, //關鍵字段 這個字段是惟一的
FOREIGN KEY (pid) REFERENCES
t_Person(id) //創外鍵保證數據的完整性和合法性 ); -- 方法二 CREATE TABLE t_card2( card_id INT PRIMARY KEY AUTO_INCREMENT, start_time DATE, end_time DATE, FOREIGN KEY (card_id) REFERENCES t_Person(id) );

一對多:1:n

eg:一個學生有多門成績

註:通過添加關鍵字段的方式來實現 一對多 關鍵字段要加在多的那個上面

-- 一對多
-- 一個學生有多門成績
CREATE TABLE t_student(
id INT PRIMARY
KEY AUTO_INCREMENT, uname VARCHAR(10) ); CREATE TABLE t_scores( id INT PRIMARY KEY AUTO_INCREMENT, num INT, stu_id INT, //關鍵字段 FOREIGN KEY (stu_id) REFERENCES t_student(id) );

多對多:n:n

eg:多個老師教多個學生

註:通過添加關鍵字段的方式來實現 多對多 需要新建一個表 把兩個關鍵字段都添加進去

-- 多對多

CREATE TABLE t_teacher(
id INT PRIMARY KEY AUTO_INCREMENT,
tname 
VARCHAR(10) ); CREATE TABLE t_student( id INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(10) ); CREATE TABLE t_stu_tea( id INT PRIMARY KEY AUTO_INCREMENT, stuid INT, //關鍵字段 teaid INT, //關鍵字段 FOREIGN KEY (stuid) REFERENCES t_student(id), FOREIGN KEY (teaid) REFERENCES t_teacher(id) );

MySQL之表的關系