數據庫實體表關係
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);
開發中處理多對多:★
引入一張中間表,存放兩張表的主鍵,一般會將這兩個字段設置爲聯合主鍵,這樣就可以將多對多的關係拆分
成兩個一對多了
爲了保證數據的有效性和完整性
需要在中間表上添加兩個外鍵約束即可.