关于数据库中FK的简单理解以及应用
来源:互联网 发布:手机太阳系模拟软件 编辑:程序博客网 时间:2024/05/19 21:41
问题来源:思考如果有两张表,应该以什么样的方式将两者关联起来?直接用两个表中的字段进行关联,还是使用第三张关系表进行关联?
说明:FK(foreign key)、PK(primary key)
(注:下面提到的:“一对一”、“一对多”、“多对一”,是指一个表的记录只能与另一个表的一条记录连接;或者是一个表的记录与另一个表的多条记录连接)查询之前,先要了解 表之间的关系
理解:
如果两个表之间的关系涉及一对多,或者多对一,肯定会有FK即便没有显示声明FK,也会有一个字段起到FK的作用;
如果当时设计是一对多,或者多对一,就可以利用FK关联
但是大部分情况,我们是不会显示声明FK的;
如果两个表之间的关系是多对多,中间必然会有 “关系表”(例如“教师-学生关系表”,教师表和学生表的关系)
这个时候,查询时,中间的“关系表”起到关联中介的作用。
总结:
如果两张表是:“一对多”,或者“多对一”的关系,那么可以考虑使用 FK 进行关联两张表;
如果两张表是:“多对多”的关系,那么就会需要使用到第三张“关系表”来进行关联;
举个例子:
现有一个新系统,一个用户只允许有一个角色,一个角色可以对应多个用户,(分别对应用户表,角色表)
这个时候,FK应该在哪个表上?
FK应该在 角色表上;FK设定的重要原则:FK必然是另一个表的PK的映射。(做FK的不一定是PK字段)
FK 的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作。
---- 还有好多的不懂之处,后续知道了再补充。
阅读全文
0 0
- 关于数据库中FK的简单理解以及应用
- OPENGL中简单点的理解以及关于照相机的简单理解
- 关于数据库的操作以及一些理解
- 关于ContentProvider的理解与简单应用
- 关于OC中消息转发机制的理解以及在项目中的实际应用
- 关于OC中消息转发机制的理解以及在项目中的实际应用
- java 关于Spring中Aop的简单理解以及SpringBoot如何添加Aop实现步骤
- java中关于static的简单理解
- 关于Unity中joint的简单理解
- Android中关于SimpleAdapter的简单理解
- 关于oracle数据库中scn的理解
- 数据库中关于范式的理解
- 关于回调函数应用的理解以及小例子
- ODI CKM Oracle关于FK的检查客户化调整
- Mysql数据库应用中简单的封装
- 关于Angular中directive的简单应用
- iOS编程中线程的应用以及线程简单应用
- 关于Spring Boot 的一些简单理解和应用
- javaSE-Day6-对象比较/static
- 完全备份、差异备份以及增量备份的区别
- Gradle sync failed: 'support-v4-25.3.1' already disposed:
- matlab中linspace函数用法
- codility CountTriangles
- 关于数据库中FK的简单理解以及应用
- 项目中配置maven发布地址
- 6.0权限动态适配(二)(存在问题)
- Elam的caffe笔记之配置篇(二):CentOS6.5编译安装NVIDIA驱动
- HTTP协议知多少
- JavaWeb中读取文件资源的路径问题
- nodejs取参四种方法req.body,req.params,req.param,req.body
- 聪明木匠的切割问题
- CentOS7 中文man(cman)配置方法