表之間的關(guān)系
如何找出兩張表的對(duì)應(yīng)關(guān)系?
分析步驟:
1.先找出左表的角度去找
是否左表的多條記錄可以對(duì)應(yīng)右表的一條記錄,如果是,則證明左表的一個(gè)字段foreign key 右表一個(gè)字段 (通常是id)
2.再站在右表的角度去找
是否右表的多條記錄可以對(duì)應(yīng)左表的一條記錄,如果是,則證明右表的一個(gè)字段foreign key 左表一個(gè)字段(通常是id)
3.總結(jié)
多對(duì)一:
如果只有步驟1成立,則是左表多對(duì)一右表
如果只有步驟2成立,則是右表多對(duì)一左表
多對(duì)多:
如果步驟1和2同時(shí)成立,則證明這兩張表時(shí)一個(gè)雙向的多對(duì)一,即多對(duì)多,需要定義一個(gè)這兩張表的關(guān)系表來(lái)專門(mén)存放二者的關(guān)系
一對(duì)一:
如果1和2都不成立,而是左表的一條記錄唯一對(duì)應(yīng)右表的一條記錄,反之亦然。這種情況很簡(jiǎn)單,就是在左表foreign key右表的基礎(chǔ)上,將左表的外鍵字段設(shè)置成unique即可
下面舉例說(shuō)明;
? ? 1) 多對(duì)一或者一對(duì)多
????? ?比如:?出版社 ?和?書(shū) (foreign key(press_id) references press(id))
????????多個(gè)出版社出一本書(shū) ,多本書(shū)能被一個(gè)出版社出版


2) 多對(duì)多
比如: 作者和書(shū)
雙向多對(duì)一,那就是多對(duì)多,書(shū)的表上節(jié)已經(jīng)建好了。
創(chuàng)建表:
插入數(shù)據(jù):
要實(shí)現(xiàn):
ss:
九陽(yáng)神功
九陰真經(jīng)
九陰白骨爪
獨(dú)孤九劍
降龍十八掌
葵花寶典
aa:
九陽(yáng)神功
葵花寶典
yy:
獨(dú)孤九劍
降龍十八掌
葵花寶典
ww:
九陽(yáng)神功

3)一對(duì)一
比如說(shuō)客戶和學(xué)生:多個(gè)客戶不能是一個(gè)學(xué)生,多個(gè)學(xué)生也不能是一個(gè)客戶,所以是一對(duì)一的關(guān)系。
創(chuàng)建表:
插入數(shù)據(jù):