1、常見關係:
一對多. 使用者和訂單 分類和商品
多對多. 訂單和商品 學生和課程
一對一. 丈夫和妻子
2、er圖可以描述實體於實體之間的關係
實體用矩形表示
屬性用橢圓表示
關係用菱形表示
1、一對一
2、一對多:
使用者和訂單
-- 建立使用者表
create
table
user(
id int
primary
key auto_increment,
username varchar(20)
);-- 建立訂單表
create
table orders(
id int
primary
key auto_increment,
totalprice double,
user_id int
);為了保證資料的有效性和完整性,新增約束(外來鍵約束).
在多表的一方新增外來鍵約束
格式:alter
table 多表名稱 add
foreign
key(外來鍵名稱) references 一表名稱(主鍵);
例如:alter
table orders add
foreign
key(user_id) references
user(id);
新增了外來鍵約束之後有如下特點:★
1.主表中不能刪除從表中已引用的資料
2.從表中不能新增主表中不存在的資料
開發中處理一對多:★
在多表中新增乙個外來鍵,名稱一般為主表的名稱_id,字段型別一般和主表的主鍵的型別保持一致,
為了保證資料的有效性和完整性,在多表的外來鍵上新增外來鍵約束即可.
2、多對多
例子:商品和訂單
-- 建立商品表
create
table product(
id int
primary
key auto_increment,
name varchar(20),
price double
);-- 建立中間表
create
table orderitem(
oid int,
pid int
);-- 新增外來鍵約束
alter
table orderitem add
foreign
key(oid) references orders(id);
alter
table orderitem add
foreign
key(pid) references product(id);
開發中處理多對多:★
引入一張中間表,存放兩張表的主鍵,一般會將這兩個字段設定為聯合主鍵,這樣就可以將多對多的關係拆分
成兩個一對多了
為了保證資料的有效性和完整性
需要在中間表上新增兩個外來鍵約束即可.
資料庫實體關係
資料庫實體間有三種關聯關係 一對一,一對多,多對多。一對一例項 乙個學生只有個身份證編號。一對多例項 乙個班級有多個學生。多對多例項 多對多就是雙向一對多,乙個學生可以選擇多門課,一門課也有多名學生。一對一關係處理 我們需要建立學生表來存放學生的資訊 列屬性為下面 身份證 學生證年齡 名字一對多關係...
資料庫實體間關係筆記
判斷實體間關係只需要問自己兩個問題 1.實體a包含實體b嗎?2.實體b包含實體a嗎?當實在是不能分辨兩個實體間的關係是 一對多 還是 多對多 我們不妨用假設法。今天設計資料庫標間關係的是偶蒙圈了。在這裡調整一下思路。實體a實體b 1 1 1n mn 1 1 獨生子家庭 乙個兒子只有有乙個父親,乙個父...
資料庫中實體的對應關係
一 多表設計中的三種實體關係 1 一對多 1 n 乙個部門可以對應多個員工,乙個員工只能屬於乙個部門 乙個客戶可以對應多個訂單,乙個訂單只能屬於乙個客戶 一對多關係建表原則 需要在多的一方新增乙個字段,作為外來鍵指向一的一方主鍵!2 多對多 m n 乙個學生可以選擇多門課程,乙個課程可以被多個學生所...