表之间的关系
如何找出两张表的对应关系?
分析步骤:
1.先找出左表的角度去找
是否左表的多条记录可以对应右表的一条记录,如果是,则证明左表的一个字段foreign key 右表一个字段 (通常是id)
2.再站在右表的角度去找
是否右表的多条记录可以对应左表的一条记录,如果是,则证明右表的一个字段foreign key 左表一个字段(通常是id)
3.总结
多对一:
如果只有步骤1成立,则是左表多对一右表
如果只有步骤2成立,则是右表多对一左表
多对多:
如果步骤1和2同时成立,则证明这两张表时一个双向的多对一,即多对多,需要定义一个这两张表的关系表来专门存放二者的关系
一对一:
如果1和2都不成立,而是左表的一条记录唯一对应右表的一条记录,反之亦然。这种情况很简单,就是在左表foreign key右表的基础上,将左表的外键字段设置成unique即可
下面举例说明;
1) 多对一或者一对多
比如: 出版社 和 书 (foreign key(press_id) references press(id))
多个出版社出一本书 ,多本书能被一个出版社出版


2) 多对多
比如: 作者和书
双向多对一,那就是多对多,书的表上节已经建好了。
创建表:
插入数据:
要实现:
ss:
九阳神功
九阴真经
九阴白骨爪
独孤九剑
降龙十八掌
葵花宝典
aa:
九阳神功
葵花宝典
yy:
独孤九剑
降龙十八掌
葵花宝典
ww:
九阳神功

3)一对一
比如说客户和学生:多个客户不能是一个学生,多个学生也不能是一个客户,所以是一对一的关系。
创建表:
插入数据: