2020年10月29日星期四

MySQL 之 表与表之间的关系

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));

原文转载:http://www.shaoqun.com/a/484798.html

跨境通:https://www.ikjzd.com/w/1329

中转贸易:https://www.ikjzd.com/w/1427

costco:https://www.ikjzd.com/w/1680


1、如何找出两张表之间的关系分析步骤:1、先从左表的角度去找 看左表的多条记录是否可以对应右表的一条记录,如果是,则证明左表的一个字段foreignkey(关联)右表的一个字段(通常是id字段)。2、再从右表的角度去找 看右表的多条记录是否可以对应左表的一条记录,如果是,则证明右表的一个字段foreignkey(关联)左表的一个字段(通常是id字段)。3、总结: 多对一: 如果1成立,则说明左表
夸克:https://www.ikjzd.com/w/1237
韩蓬:https://www.ikjzd.com/w/1635
乘广珠轻轨玩乐觅食过大年 :http://tour.shaoqun.com/a/12662.html
深圳玫瑰海岸有什么旅游特色?:http://tour.shaoqun.com/a/709.html
口述:前夫来电话问我内衣尺码(4/4):http://lady.shaoqun.com/m/a/111214.html

没有评论:

发表评论