数据库设计关联关系表的意义是什么?
2021/12/24 19:07:28
本文主要是介绍数据库设计关联关系表的意义是什么?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
例: 有两张表,分别是员工表 和 部门表。
方案1:员工表中,存在一个部门ID,用于关联到部门表中对应的数据。(个人倾向)
方案2:创建第三张表,部门员工表,里面只有两个字段,一个是员工ID,一个是部门ID,用于记录员工与部门之间的关联。(客户倾向)
不知道方案1和方案2的优劣如何?到底要如何设计表关联方式?
两种方法都可以表达员工和部门的关系。
1、方案一,在数据关系上,仅仅是一对多
2、方案二,在数据关系上,其实是多对多。兼容了一对多的情况。
可以粗略理解为:多对多的情况下一定选择关系表形式,一对多的关系根据实际业务选择。(可忽略)
因此,方案二的扩展性显然要更好,这里不能用范式或者反范式来下结论。因为部门和员工之间的关系,可能以后真的就成了多对多。何况还有程序中的数据操作也表达了数据关系,因此仅仅通过数据表的结构,不能简单的得到反范式的结论。
再更进一步,在考虑到性能时,有时反范式也是需要的。比如员工部门表独立出来,可以进行表缓存,甚至进一步加载到缓存数据库中。这样员工登录时,系统可快速根据部门情况决定其权限。如果员工表非常大,每次都要进行关联查询无疑是增加了数据库的压力。这是常见的空间换时间的打法。
参考知乎文章 :https://www.zhihu.com/question/314207532
这篇关于数据库设计关联关系表的意义是什么?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?