论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
数据库
›
分布式数据库
›
数据库连表查询
数据库连表查询
罪恶克星
论坛元老
|
2025-5-5 03:40:59
|
显示全部楼层
|
阅读模式
楼主
主题
1922
|
帖子
1922
|
积分
5766
一、一对一:
在一对一关系中,两个实体之间的关系是唯一的,即每一方最多只与另一方的一个实例关联。
1、合成一张表(最好的解决方式)
将两个表中的数据合并到一个表中,这样每个记载都有独立的字段来体现这两个实体的信息。这个方法可以消除表之间的关联,镌汰连接操作,但大概会导致字段冗余,尤其是当某些字段在特定情况下为空时。
2、在其中一张表里添加外键
在一方表中添加外键字段,指向另一方的主键。这个方法较简单,通常在"多"方添加外键,能保持数据同等性和完备性。
或
3、创建一张新表存储一对一的关系
创建一个新的表来存储两个实体之间的关系,这张表包含两个外键字段,分别指向两个原表的主键。固然这种方法可以灵活管理关系,但会增加额外的查询和维护成本。
二、一对多
在一对多关系中,一个实体与多个实体之间存在关联,但多方实体仅对应一个主方实体。
1、合成一张表(数据冗余,比如class班级都重复了两遍,如果字段过多会有更多重复,而且修改复杂,如下一个方法2、的用例表)
将一对多的关系合并为一张表,重复保存数据。比如,将班级和门生的信息存储在同一张表中,导致班级字段在每一条门生记载中都重复保存。固然结构简单,但数据冗余严重,修改和维护困难。
2、在其中一张表建立外键(在多的一方添加外键)(一对多最优)
在"多"方表中添加外键字段,指向"一"方的主键。这样可以避免冗余数据,镌汰维护成本,并确保数据完备性。在绝大多数情况下,这是最优解决方案。
3、创建一个新表存储关系(三张表查询较慢)
创建一个新的表来存储一对多关系,这个表会包含两个外键字段,分别指向两个原表的主键。只管这种方法保持了数据的独立性和完备性,但由于涉及多表关联查询,大概会导致性能问题。
三、多对多(简化版,有几个门生没画)
在多对多关系中,两个实体之间相互关联,每一方的多个实例都可以与另一方的多个实例相干联。
1、合成一张表(下图为简化版,可以清楚看出数据冗余)
将两个表合并成一张表,存储所有关联数据。这种方式导致严重的冗余,由于每个关联的实例都会被重复保存。尤其是在数据量较大时,冗余和查询的复杂度增加。
2、在其中一张表添加外键(简化版,建立外键的表数据冗余)
在"多"方表中添加外键,指向"一"方的主键。这种方法固然镌汰了冗余,但还是存在肯定的重复数据,而且大概导致部分表的更新变得复杂。
3、创建一张新表,用来存储关系(简化版,相较于其他表最优)
创建一个中间关系表,该表包含两个外键字段,分别指向两个原表的主键。这个方法是多对多关系的最优解决方案,由于它消除了冗余数据,并通过关系表灵活处置惩罚多个实体之间的关联。只管它涉及额外的查询和表连接,但在大多数应用中是最推荐的设计方式。
总结
一对一
:最优解决方案是通过在其中一张表中添加外键,避免数据冗余。
一对多
:通常在多方表中添加外键,这样既保持数据独立性,又能确保数据同等性。
多对多
:最优解决方案是创建一个中间表来存储两者的关系,这样可以有效管理关联关系,避免冗余数据。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
罪恶克星
论坛元老
这个人很懒什么都没写!
楼主热帖
2. 函数
从Android开发的角度比较MVC,MVP,MVVM ...
京东张政:内容理解在广告场景下的实践 ...
KAFKA EAGLE 监控MRS kafka之操作实践 ...
关键字和标识符
React技术栈 --》plugin与JSX语法使用 ...
HCIA学习笔记十一:ARP地址解析协议 ...
dotnet 6 为什么网络请求不跟随系统网 ...
数字图像增强的一般方法
Vue前后台数据交互实例演示,使用axios ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
DevOps与敏捷开发
linux
快速回复
返回顶部
返回列表