1、如何找出兩張表之間的關系
分析步驟:
1、先從左表的角度去找
看左表的多條記錄是否可以對應右表的一條記錄,如果是,則證明左表的一個欄位foreign key (關聯)右表的一個欄位(通常是id欄位),
2、再從右表的角度去找
看右表的多條記錄是否可以對應左表的一條記錄,如果是,則證明右表的一個欄位foreign key (關聯)左表的一個欄位(通常是id欄位),
3、總結:
多對一:
如果1成立,則說明左表多對一右表,
如果2成立,則說明右表多對一左表,
多對多:
如果1和2同時成立,則說明這兩張表是一個雙向的多對一,即多對多,需要定義一個這兩張表的關系來專門存放二者的關系,
一對一:
如果1和2都不成立,而是左表的一條記錄唯一的對應右表的一條記錄,反之亦然,這種情況下,就是在左表foreign key 右表的基礎上,將左表的外鍵欄位設定成unique即可,
2、mysql中表與表之間的關系
(1)一對多 : 關聯方式 -- foreign key
create table class(id int primary key,cname char(12));
create table student(id int primary key,sname char(16),cid int,foreign key(cid) references class(id));
(2)多對多 : 關聯方式 -- foreign key + 一張新的表
create table class(id int primary key,cname char(12));
create table teacher(id int primary key,tname char(12));
create table teach_cls(id int,cid int,tid int,foreign key(cid) references class(id)),foreign key(tid) references teacher(id)));
(3)一對一 : 關聯方式 -- foreign key + unique
create table guest(id int primary key,name char(12));
create table student(id int primary key,sname char(12),gid int unique,foreign key(gid) referances guest(id));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/196098.html
標籤:其他
上一篇:Redis 持久化
下一篇:oracle常見視圖匯總
