関係には、1対1、1対多(多対1)、および多対多の3つの主要なタイプがあります。
1対1
たとえば、
アカウントとパスワードを保存するテーブルと、個人情報を保存するテーブルがあります。これらは、1対1のwidによって関連付けられています。
create table Wechat(
wid int PRIMARY key,
wpassword varchar(20)
);
create table Wechat_person(
wid int PRIMARY key,
wname varchar(20),
sex enum('男','女')
);
ALTER table Wechat_person add CONSTRAINT yueshu1 FOREIGN key(wid)
REFERENCES Wechat(wid);
1対多
学生テーブルには学生の名前と学生番号
が含まれ、トランスクリプトには学生番号、コース番号、コースグレードが含まれます。これは、複数の結果があるため、より多くの番号が含まれるためです
(PS:学生番号とコース番号が主要なキーを構成できます)
現在の学生表の学生番号、成績証明書の学生番号は1対多です
create table student(
sid varchar(10) PRIMARY key,
sname varchar(20)
);
CREATE TABLE score(
sid varchar(10),
courseid INT,
score DOUBLE
);
ALTER TABLE score ADD CONSTRAINT yueshu2 FOREIGN KEY(sid) REFERENCES student(sid);
多対多
生徒テーブルには生徒番号と生徒名が含まれます。
教師テーブルには教師番号と教師名が含まれます
。1人の生徒は複数の教師に対応し、複数の教師は
1人の生徒に対応するため、1つのテーブルの複数の教師に対応する複数の生徒に相当します。学生IDと教師IDが含まれています
create table teacher(
tid int PRIMARY key,
tname varchar(20)
);
create table student2(
sid int PRIMARY key,
sname varchar(20)
);
create table tea_stu2(
tid int,
sid int
);
ALTER TABLE tea_stu2 ADD CONSTRAINT 2_tid FOREIGN KEY(tid) REFERENCES teacher(tid);
ALTER TABLE tea_stu2 ADD CONSTRAINT 2_sid FOREIGN KEY(sid) REFERENCES student2(sid);