MySQL-数据库设计
1.范式
1.1第一范式
1.1.1定义
1.1.2示例
1.1.2.1反例
1.1.2.2正例
• 学校信息包含在⼀⾏中,每⼀列都不能再进⾏拆分,此时已满⾜第⼀范式

在关系型数据库中,每⼀列都可以⽤基本数据类型表⽰,就天然满⾜第⼀范式
1.2第二范式
1.2.1定义
候选键:可以唯⼀标识⼀⾏数据的列或列的组合,可以从候选键中选⼀个或多个当做表的主键
1.2.2示例
1.2.2.1反例
用一张表记录所有信息

1.2.2.2不满足第二范式时可能出现的问题
1.2.2.3正例


第⼆范式强调的是部分函数依赖,当⼀张表中的主键只有⼀列时,天然满⾜第⼆范式
1.3第三范式
1.3.1定义
1.3.2示例
1.3.2.1反例

• 因为是要描述学⽣信息,并且在表中定义了Id为主键,Id可以明确的标识每条学⽣信息
1.3.2.2正例

此时所有表设计满⾜第三范式
2.设计过程
3.实体-关系图
3.1 E-R图的基本组成
E-R图包含了以下三种基本成分:
3.2关系的类型
3.2.1 一对一关系(1:1)
3.2.2一对多关系(1:N)

3.2.3多对多关系(M:N)
4.练习:设计表
4.1用户与账号的一对一关系
# 在⽤⼾实体中添加对账⼾实体的关联
drop table if exists users;
create table users (id bigint primary key auto_increment,name varchar(20) not null, nickname varchar(20),phone_num varchar(11), email varchar(50),gender tinyint(1),account_id bigint
);drop table if exists account;create table account (id bigint primary key auto_increment,username varchar(20) not null,password varchar(32) not null
);# 在账⼾实体中添加对⽤⼾实体的关联
drop table if exists users;create table users (id bigint primary key auto_increment,name varchar(20) not null, nickname varchar(20),phone_num varchar(11), email varchar(50),gender tinyint(1)
);drop table if exists account;create table account (id bigint primary key auto_increment,username varchar(20) not null,password varchar(32) not null,users_id bigint
); 4.2学生与班级的一对多关系
# 班级表
drop table if exists class;
create table class (id bigint primary key auto_increment,name varchar(20)
);# 学⽣表
drop table if exists student;
create table student (id bigint primary key auto_increment,name varchar(20) not null, sno varchar(10) not null,age int default 18,gender tinyint(1), enroll_date date,class_id bigint
); 4.3学生、课程与成绩的多对多关系
# 学⽣表
drop table if exists student;
create table student (id bigint primary key auto_increment,name varchar(20) not null, sno varchar(10) not null,age int default 18,gender tinyint(1), enroll_date date,class_id bigint,foreign key (class_id) references class(id)
);# 课程表
drop table if exists course;create table course (id bigint primary key auto_increment,name varchar(20));# 分数表drop table if exists score;create table score (id bigint primary key auto_increment,score float,student_id bigint,course_id bigint,foreign key (student_id) references student(id),foreign key (course_id) references course(id)); 相关文章:
MySQL-数据库设计
1.范式 数据库的范式是⼀组规则。在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数 据库,这些不同的规范要求被称为不同的范式。 关系数据库有六种范式:第⼀范式(1NF)、第⼆范式(…...
Unity开发绘画板——04.笔刷大小调节
笔刷大小调节 上面的代码中其实我们已经提供了笔刷大小的字段,即brushSize,现在只需要将该字段和界面中的Slider绑定即可,Slider值的范围我们设置为1~20 代码中只需要做如下改动: public Slider brushSizeSlider; //控制笔刷大…...
./mnt/container_run_medium.sh
#!/bin/bash# 清理旧的日志文件 rm -f *.log rm -f nohup.out rm -f cssd.dat# 启动 pwbox_simu 和 MediumBoxBase nohup /mnt/simutools/pwbox_simu /mnt/simutools/pw_box.conf > /dev/null 2>&1 & nohup /mnt/mediumSimu/MediumBoxBase /mnt/mediumSimu/hynn_…...
数学建模研赛总结
目录 前言进度问题四分析问题五分析数模论文经验分享总结 前言 本文为博主数学建模比赛第五天的内容记录,希望所写的一些内容能够对大家有所帮助,不足之处欢迎大家批评指正🤝🤝🤝 进度 今天已经是最后一天了…...
通信工程学习:什么是TCF技术控制设施
TCF(Technical Control Facility):技术控制设施 首先,需要明确的是,通信工程是一门涉及电子科学与技术、信息与通信工程和光学工程学科领域的基础理论、工程设计及系统实现技术的学科。它主要关注通信过程中的信息传输…...
stm32 bootloader跳转程序设计
文章目录 1、bootloader跳转程序设计(1)跳转程序(2)、app程序中需要注意<1>、在keil中ROM起始地址和分配的空间大小<2>、在system_stm32f4xx.c中设置VECT_TAB_OFFSET为需要偏移的地址<3>、main函数中使能中断 总…...
科技赋能环保:静电与光解技术在油烟净化中的卓越应用
我最近分析了餐饮市场的油烟净化器等产品报告,解决了餐饮业厨房油腻的难题,更加方便了在餐饮业和商业场所有需求的小伙伴们。 随着环保政策的不断升级,餐饮行业的油烟治理成为重要课题。油烟净化器的技术革新不仅提升了净化效率,…...
FCA-FineBI试卷答案
1、【判断题】FineBI数据加工建模中只支持文本、数值、日期三种数据类型。 正确答案:A A. 正确 B. 错误 2、【判断题】Excel 支持批量导入,可以一次导入多个 sheet 或 Excel? 正确答案:A A.正确 B. 错误 3、【判断题】FineBI V6.…...
Spring - @Import注解
文章目录 基本用法源码分析ConfigurationClassPostProcessorConfigurationClass SourceClassgetImportsprocessImports处理 ImportSelectorImportSelector 接口DeferredImportSelector 处理 ImportBeanDefinitionRegistrarImportBeanDefinitionRegistrar 接口 处理Configuratio…...
新能源汽车储充机器人:能源高效与智能调度
新能源汽车储充机器人:开启能源高效利用与智能调度的未来之门 随着全球能源危机的日益加剧和环境污染问题的不断恶化,新能源汽车成为了未来交通领域的重要发展方向。然而,新能源汽车的普及不仅需要解决电池技术的瓶颈,还需要构建一…...
【Linux网络】详解TCP协议(2)
🎉博主首页: 有趣的中国人 🎉专栏首页: Linux网络 🎉其它专栏: C初阶 | C进阶 | 初阶数据结构 小伙伴们大家好,本片文章将会讲解 TCP协议的三次握手和四次挥手 的相关内容。 如果看到最后您觉得…...
STM32DMA学习日记
STM32 DMA学习日记 写于2024/9/28晚 文章目录 STM32 DMA学习日记1. DMA简介2. I/O方式2.1 程序查询方式2.2 程序中断方式2.3 DMA方式 3.DMA框图4. 相关寄存器4.1 DMA中断状态寄存器(DMA_ISR)4.2 DMA中断标志清除寄存器(DMA_IFCR)…...
【高性能内存池】page cache 5
page cache 1 page cache的框架2 central cache从page cache申请n页span的过程3 page cache 的结构3.1 page cache类框架3.2 central cache向page cache申请span3.3 获取k页的span page cache的结构和central cache是一样的,都是哈希桶的结构,并且挂载的…...
Vue 3 魔法揭秘:CSS 解析与 scoped 背后的奇幻之旅
文章目录 一、背景二、源码分析transformMain 返回值transformStyle 方法compileStyleAsync 方法scopedPlugin 方法template 添加 __scopeId 三、总结 一、背景 Vue 3 文件编译流程详解与 Babel 的使用 上文分析了 vue3 的编译过程,但是在对其中样式的解析遗留了一…...
如何获取钉钉webhook
第一步打开钉钉并登录 第二步创建团队 并且 添加自定义 机器人 即可获取webhook...
网页WebRTC电话和软电话哪个好用?
关于WebRTC电话与软件电话哪个更好用,这实际上取决于多个因素,并没有一个绝对的答案。不过,我可以根据WebRTC技术的一些特点,以及与传统软件电话相比的优劣势,为你提供一个清晰的对比。 首先,让我们了解一下…...
MySQL Mail服务器集成:如何配置发送邮件?
MySQL Mail插件使用指南?怎么优化 MySQL发邮件性能? MySQL Mail服务器的集成,使得数据库可以直接触发邮件发送,极大地简化了应用架构。AokSend将详细介绍如何配置MySQL Mail服务器,以实现邮件发送功能。 MySQL Mail&…...
【Rockchip系列】官方函数:imcopy
imcopy 函数原型 IM_STATUS imcopy(const rga_buffer_t src,rga_buffer_t dst,int sync 1,int *release_fence_fd NULL);功能说明 imcopy函数用于执行单次快速图像拷贝操作,将图像从源缓冲区拷贝到目标缓冲区。 参数说明 参数描述src[必填] 源图像缓冲区&…...
Matlab实现鲸鱼优化算法优化回声状态网络模型 (WOA-ESN)(附源码)
目录 1.内容介绍 2部分代码 3.实验结果 4.内容获取 1内容介绍 鲸鱼优化算法(Whale Optimization Algorithm, WOA)是一种基于座头鲸捕食行为的群智能优化算法。该算法通过模仿座头鲸使用螺旋形路径和包围猎物的策略来探索和开发解空间,以找到…...
迈威通信闪耀工博会,以创新科技赋能工业自动化
昨日,在圆满落幕的第24届中国国际工业博览会上,迈威通信作为工业自动化与智慧化领域的先行者,以“创新打造新质通信,赋能工业数字化”为主题精彩亮相,向全球业界展示了我们在工业自动化领域的最新成果与创新技术。此次…...
Android 基于ViewPager2+ExoPlayer+VideoCache 打造短视频无缝预加载方案
1. 为什么需要短视频无缝预加载方案 刷短视频已经成为现代人日常娱乐的重要方式,但卡顿、加载慢这些问题总是让人抓狂。想象一下,当你滑动到下一个视频时,如果出现黑屏等待,体验就会大打折扣。这正是我们需要实现无缝预加载的关键…...
OpenClaw备份策略:GLM-4.7-Flash智能管理本地与云端存储
OpenClaw备份策略:GLM-4.7-Flash智能管理本地与云端存储 1. 为什么需要智能备份方案 上周我的移动硬盘突然罢工,导致三个月的项目文档全部丢失。这次惨痛经历让我意识到:传统备份方式已经无法满足现代工作需求。手动备份不仅耗时耗力&#…...
Linux Ubuntu 24.04 Server 超简单部署 Fast GPT(新手零踩坑)
前言: Fast GPT 是一款基于大语言模型的知识型平台,支持数据处理、RAG检索、可视化AI工作流编排,能快速搭建专属问答系统,无需复杂开发配置。本文针对 Ubuntu 24.04 Server 系统,用最简洁的步骤完成部署,全…...
Java高频面试题:RocketMQ有哪些使用场景?
大家好,我是锋哥。今天分享关于【Java高频面试题:RocketMQ有哪些使用场景?】面试题 。希望对大家有帮助;Java高频面试题:RocketMQ有哪些使用场景?RocketMQ 是阿里巴巴开源的一款分布式消息中间件࿰…...
中集集团2025年经营现金流翻倍增长至185亿,有息负债下降约48亿元
据3月27日年报显示,2025年中集集团经营质量持续提升,经营活动产生的现金流量净额大幅增长99.9%至185亿元,反映出主营业务回款能力增强与运营效率改善。与此同时,公司持续推进资产负债结构优化,年末有息债务规模下降至3…...
从一次安全事件复盘:我们是如何通过配置Windows审计策略和事件查看器,发现并阻断虚拟机异常登录的
虚拟化环境安全审计实战:从异常登录告警到精准防御 那天凌晨3点15分,安全运营中心的告警铃声突然响起。监控大屏上,一台核心业务虚拟机的登录事件触发了我们的阈值告警——这个时间段本不该有任何运维操作。当我调出事件查看器里那条4672特殊…...
Flutter透明视频播放实战:用AlphaPlayer插件5分钟搞定礼物特效
Flutter透明视频播放实战:用AlphaPlayer插件5分钟搞定礼物特效 在移动应用开发中,炫酷的动画效果往往能显著提升用户体验,尤其是在社交、直播和游戏类应用中。透明视频特效作为其中一种高级表现形式,能够实现元素与背景的无缝融合…...
2024 0xGame Web安全挑战:从SQLite注入到RCE实战解析
1. SQLite注入基础与实战技巧 SQLite作为轻量级数据库,在CTF题目中经常出现。与MySQL注入相比,SQLite少了information_schema等常用表,但核心注入逻辑相通。以2024 0xGame的ez_sql题为例,我们来看具体操作: 闭合方式差…...
《Cancer Discov》(IF: 33.3)|新型空间蛋白组和空间转录组整合流程解析肿瘤免疫微环境
空间转录组学和空间蛋白组学能分别在原位解析基因表达和蛋白功能状态。然而,它们各有自己独特的应用场景,例如空间转录组覆盖广但预测功能不直接,而空间蛋白组功能信号直接,靶向性高,能提供更多的有效生物学信息。如果…...
3种方法永久保存QQ空间历史说说:GetQzonehistory实战指南
3种方法永久保存QQ空间历史说说:GetQzonehistory实战指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 为什么需要GetQzonehistory:三个真实场景 想象一下&am…...
