个人对数据库设计中,外键多表关联的一对一、一对多、多对多的理解:面向对象

本文探讨了数据库设计中外键在一对一、一对多、多对多关联中的作用。通过面向对象的视角解释,强调了根据业务需求和查询性能来决定表结构的重要性,旨在优化存储空间和提升查询效率。
摘要由CSDN通过智能技术生成

什么是外键,百度百科是这样说的:

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。

 

外键是两个表中相同的同一个键,例如用户ID,user_id。

有些时候会把不同的字段分离在两个或多个表中,用共同的外键去关联起来,为什么这么做呢?什么时候才需要这样做?

表的价值在存储的同时还在于关联

一个字段对于同表的其他字段,只有一个值而不是多个时,就不需要将这个字段放到外面其他表,直接放在主表里面就好了。这叫做一对一

而当一个字段关联的另一个字段的值会有多个时,就需要将另一个字段放到单独的表中,用外键关联起来,通常是一个id键。这叫做多对一

 

那么,在表中字段都只是一个值时,还需要将这些字段再分开放不同的表吗?

答案是需要的(yes)。考虑到查询性能,如果字段之间对业务需求而言并无关联,那么就可以将字段分开为多个表,这样业务在查询时就只需要查询有关的表字段,而不会因为多个无关的字段都在一个表内而查询出来多余无关的字段进而拖慢性能。

 

还有一种多对多的关联方式。

多对多用在什么样的场景呢?其实我们可以用面向对象的思想来看待这种问题。

我们把“一”看做是编程里的概念“基本数据类型”,int、long、bool之类的啦;

把“多”看做是编程里的概念“对象”,也就是Object,例如Java的Object、js的json对象。对象是具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值