010_多表的表关系
一. 一對多表關系
1. 用戶表user
-- 用戶的id: uid -- 用戶名: username -- 密碼: password -- 手機: phonecreate table `user` ( `uid` int(11) not null auto_increment, `userName` varchar(32) default null, `password` varchar(128) default null, `phone` varchar(11) default null, primary key (`uid`) ) engine=InnoDB auto_increment=1 default charset=utf8;2. 創建用戶表
3. 插入用戶表數據
insert into `user`?values(1,'zhangsan','123456','13811118888');
4. 訂單表orders
-- 訂單id: oid -- 總價: tprice -- 創建訂單時間: ctime -- 地址: addresscreate table `orders` ( `oid` int(11) not null auto_increment, `tprice` int(11) default null, `ctime` timestamp default now(), `address` varchar(128) default null, primary key (`oid`) ) engine=InnoDB auto_increment=1 default charset=utf8;5. 創建訂單表
6. 插入訂單表數據
insert into `orders` values(null,200,'2020-09-12 12:02:50','河南省洛陽市');
insert into `orders` values(null,2000,'2019-09-12 12:02:50','河南省偃師市');
7. 用戶表和訂單表關系分析
8. 給訂單表添加外鍵
8.1. 給訂單表添加外鍵列uid。
8.2. 給訂單表外鍵列uid添加外鍵約束。
8.3. 更新訂單表的uid字段值。
9. 一對多建表原則: 在多的一方添加一個外鍵, 指向一的一方。
二. 多對多表關系
1. 商品表product
-- 商品id: pid -- 商品名稱: pname -- 商品價格: price create table `product` ( `pid` int(11) not null auto_increment, `pname` varchar(16) default null, `price` double(12, 3) default null, primary key (`pid`) ) engine=InnoDB auto_increment=1 default charset=utf8;2. 創建商品表
3. 插入商品數據
insert into `product`?values(null,'小米mix4',1000);
insert into `product`?values(null,'錘子',900);
insert into `product`?values(null,'阿迪王',100);
insert into `product`?values(null,'老村長',40);
insert into `product`?values(null,'勁酒',60);
insert into `product`?values(null,'小熊餅干',5);
insert into `product`?values(null,'衛龍辣條',5);
insert into `product`?values(null,'旺旺大餅',20);
4. 多對多的表關系分析
5. 訂單項中間表orderItem
-- 訂單項id: oiid -- 訂單id: oid -- 商品id: pidcreate table `orderItem` ( `oiid` int(11) not null auto_increment, `oid` int(11) default null, `pid` int(11) default null, primary key (`oiid`), constraint `orderItem_ibfk_1` foreign key (`oid`) references `orders` (`oid`), constraint `orderItem_ibfk_2` foreign key (`pid`) references `product` (`pid`) ) engine=InnoDB auto_increment=1 default charset=utf8;6. 創建訂單項中間表
7. 插入訂單項中間表數據
insert into `orderItem` values(null,1,3);
insert into `orderItem` values(null,1,4);
insert into `orderItem` values(null,1,5);
insert into `orderItem` values(null,2,1);
insert into `orderItem` values(null,2,2);
insert into `orderItem` values(null,2,3);
8. 多對多建表原則: 建立一張中間表, 將多對多的關系, 拆分成一對多的關系,中間表至少要有兩個外鍵, 分別指向原來的那兩張表。
三. 一對一表關系
1. 一對一建表原則: 將一對一的情況, 當作是一對多情況處理, 在任意一張表添加一個外鍵, 指向另外一張表。
2. 公民和身份證一對一關系分析
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的010_多表的表关系的全部內容,希望文章能夠幫你解決所遇到的問題。