MySQL-多表设计

黑马程序员JavaWeb开发教程

文章目录

  • 一、一对多(多对一)
  • 二、一对一
  • 三、多对多

  • 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种:
    • 一对多(多对一)
    • 多对多
    • 一对一

一、一对多(多对一)

  1. 一对多实现:在数据库表中多的一方,添加字段,来关联一的一方的主键
  2. 外键语法
    • 创建表时指定 create table 表名
create table  baoming (字段名 数据类型,...[constraint] [外键名称] foreign key(外键字段名) references 主表(字段名)
);
- 建表完成之后添加外键
alter  table 表名 add constraint 外键名称 foreign key(外键字段名) references 主表(字段名);
  1. 外键分类
    • 物理外键
      • 概念:使用foreign key 定义外键关联另一张表
      • 缺点:影响增删改查的效率(需要检查外键关系)
      • 仅用于单节点数据库,不适用于分布式、集群场景
      • 容易引发数据库的死锁问题,消耗性能
  • 逻辑外键
    • 概念:在业务逻辑中,解决外间关联
    • 通过逻辑外键,就可以很方便的解决上述问题

二、一对一

  1. 案例:用户与身份证信息的关系
  2. 关系:一对一关系,多用于单标拆分,将一张表的基础字段放在一张表中,其他字段放在另一张表中,以提升操作效率
  3. 实现:在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(unique)

三、多对多

  1. 案例:学生与课程的关系
  2. 关系:一个学生可以选修多门课程,一门课程也可以供多个学生选择
  3. 实现:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1733.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【日志】CSDN-AI助手升级日志

CSDN-AI助手升级日志 2023/04/05上线 支持点赞、收藏回访 关注回访(对方至少有一条博客的记录) 评论回访 私信检测到群发消息自动三连 OR 通过私信指令三连触发 bug优化 优化检测模式,防止出现多触发情况 为了防止操作额度不够&#xff0c…

虚拟局域网PPTP配置与验证

虚拟局域网PPTP配置与验证 前言PPTP服务侧安装配置REF 前言 虚拟专用网(Virtual Private Network,VPN)是一种通过公共网络建立安全的连接的技术。它能够在不同的地理位置之间建立私密的通信通道,实现远程访问网络资源的安全性和隐…

2024.4.21周报

目录 摘要 Abstract 文献阅读:Next Item Recommendation with Self-Attentive Metric Learning 问题及方法 论文贡献 方法论 序列感知的推荐系统 神经注意模型 模型:ATTREC 序列推荐 基于Self-Attention的用户短期兴趣建模 用户长期兴趣建模…

JSS作业

JSS作业&#xff1a; 1: <script>var cnt parseInt(window.prompt("请输入打印的行数&#xff1a;"));for (var i 1; i < cnt; i){for (var j 1; j < i; j){document.write("*")}document.write("<br>")} </script>…

量化交易:多因子选股结合布林带择时

哈喽,大家好,我是木头左! 多因子选股策略是一种基于多个财务指标来筛选股票的方法。这种策略认为,通过综合考虑多个因素,可以更全面地评估一家公司的价值和盈利潜力。 感兴趣的朋友,可以在下方公号内回复:001,即可获取源码,共同交流! 策略的基本原理 在本策略中,我…

区块链 | OpenSea:Toward Achieving Anonymous NFT Trading 一文的改进方案

&#x1f951;原文&#xff1a; Toward Achieving Anonymous NFT Trading &#x1f951;吐槽&#xff1a; 这论文怎么老有描述不清、前后不一致的地方&#x1f607; 正文 在本节中&#xff0c;我们将具体展示我们方案的构建。我们将基于一个示例来描述我们方案的工作流程&…

【MongoDB】数据的自动过期,TTL索引

文章目录 1. 前言2.概念与使用2.1.使用方式2.2.数组中包含日期字段2.3.设置具体的过期时间点2.4.额外的过滤条件 3.总结 1. 前言 在近期的工作中&#xff0c;使用了MongoDB来保存了一些日志数据&#xff0c;但是这些日志数据具有一定的时效性&#xff0c;也就是按照业务的需要…

mac可以玩steam吗 mac安装steam教程 苹果电脑能打steam游戏吗 苹果电脑怎么安装windows 苹果mac电脑配置AI功能的M4芯片

众所周知&#xff0c;Steam作为一个热门的游戏平台&#xff0c;深受国内外玩家的喜爱&#xff0c;平台中包含了无数的游戏&#xff0c;在作战时玩家们能够与朋友们互动聊天&#xff0c;还能匹配好友组队&#xff0c;同时还能增进与同伴的默契度。 但是最近有玩家们提问说&#…

MySQL数据库中备份和查询

总所周知我们用到的数据有可能丢失&#xff0c;那么我们就可以通过备份把数据找回&#xff0c;如何操作&#xff1a;请先看下面讲解 备份&#xff1a; 导出&#xff1a; 先对数据库进行备份&#xff0c;然后提取备份文件中的SQL语句 这就是我们导出数据&#xff0c;导出了就有…

关于conda占C盘内存的问题

文章目录 前言一、C盘中.conda文件中的envs二、C盘中.conda文件中的pkgs 前言 最近发现C盘空间越来越少&#xff0c;于是就去清理了一下conda在C盘的存储&#xff0c;不看不知道&#xff0c;一看吓一跳&#xff0c;足足十几G&#xff01;于是去网上搜索了相关的包能不能删除&a…

.Net4.0 Web.config 配置实践

目录 关于 Web.config 运行环境 配置实践 请求验证模式兼容旧版本 上传文件限制 Request.Path危险值配置 全站应用UTF-8编码 设置日期格式 每个会话的限制并发请求数 正常运行指定扩展名的文件 Json字符串超出最大长度限制 控件早期版本的呈现方式 C# 操作 Web.co…

电梯节能的推广意义

之前关于电梯能量回馈设备&#xff0c;小伍已经做了很多介绍&#xff0c;那么小伙伴们&#xff0c;他的推广意义你真的了解了么&#xff1f; 第一&#xff1a;节电降耗&#xff0c;电梯在运行过程中会产生大量的惯性能量&#xff0c;这些能量如果不被利用就会浪费。能量回馈技术…

iframe和 blob实现JS,CSS,HTML直接当前页预览

先贴效果图&#xff1a; <template><div><div class"aaa"></div><div class"btn-run" click"tres">运行</div></div></template><script>import { mapState } from vuex;export default …

UDP文件传输工具之UDP怎么限流

UDP&#xff08;用户数据报协议&#xff09;以其低延迟和高速度的特点&#xff0c;在实时应用和大数据传输中扮演着重要角色。然而&#xff0c;UDP作为一种无连接的协议&#xff0c;并不保证数据包的顺序、完整性或可靠性。 因此&#xff0c;企业在寻求一种方式&#xff0c;有…

尝试给笔记本超频

超频&#xff08;英语&#xff1a;overclocking&#xff09;是把一个电子配件的时脉速度提升至高于厂方所定的速度运作&#xff0c;从而提升性能的方法&#xff0c;但此举有可能导致该配件稳定性以及配件寿命下降。 笔记本配置为&#xff1a; 处理器 AMD Ryzen 7 7730U wit…

【GlobalMapper精品教程】076:基于高程和影像数据创建电子沙盘(真实三维地形)

影像与数字高程模型叠加,可以构建三维真是地形。本文讲解在Globalmapper中基于高程和影像数据创建电子沙盘(真实三维地形)。 文章目录 一、加载数据二、创建三维网格三、三维叠加显示一、加载数据 本实验的数据(配套实验数据资料包中的data076.rar,订阅专栏,获取全文及数…

基于MLP算法实现交通流量预测

在浩如烟海的城市数据中&#xff0c;交通流量信息无疑是揭示城市运行脉络、洞察出行规律的关键要素之一。实时且精准的交通流量预测不仅能为交通规划者提供科学决策依据&#xff0c;助力提升道路使用效率、缓解交通拥堵&#xff0c;还能为公众出行提供参考&#xff0c;实现个性…

vue-manage-system 版本更新,让开发更加简单

vue-manage-system 近期进行了一次版本升级&#xff0c;主要是支持了更多功能、升级依赖版本和优化样式&#xff0c;并且上线了官方文档网站&#xff0c;大部分功能都有文档或者使用示例&#xff0c;更加适合新手上手开发&#xff0c;只需要根据实际业务简单修改&#xff0c;就…

QA测试开发工程师面试题满分问答15: 讲一讲InnoDB和MyISAM

InnoDB和MyISAM是MySQL中两种常见的存储引擎&#xff0c;它们在数据存储和处理方面有着显著的区别。让我们逐一来看一下它们的区别、原理以及适用场景。 区别&#xff1a; 事务支持&#xff1a;InnoDB是一个支持事务的存储引擎&#xff0c;而MyISAM不支持事务。事务是一种用于维…

通过python消费者和生产者队列,实现保存视频流

通过python消费者和生产者队列&#xff0c;实现保存视频流 参考 https://blog.csdn.net/qq_33843237/article/details/137745905 原理 通过opencv读入RTSP或RTMP流&#xff0c;采用消费者-生产者模型&#xff0c;通过生产者线程&#xff0c;每次读入一个视频帧&#xff08;…