数据库设计三范式

文章目录

  • 数据库设计三范式
    • 第一范式
    • 第二范式
    • 第三范式
    • 一对一怎么设计
      • 主键共享
      • 外键唯一
    • 一对多怎么设计
    • 多对多怎么设计

数据库设计三范式

数据库表设计的原则。教你怎么设计数据库表有效,并且节省空间。

如果客户有速度要求极致,可以不用。根据客户需求来




第一范式

任何一张表都应该有主键,每个字段是原子性的不能再分


无主键,联系方式还可以再分

在这里插入图片描述


修改后

在这里插入图片描述




第二范式

建立在第一范式基础上的,另外要求所有非主键字段完全依赖主键,不能产生部分依
也就是说不能有复合主键


符合第一范式,但是这里有两个依赖,学生依赖于学生编号,教师依赖于教师编号。用了复合主键

在这里插入图片描述


修改后

在这里插入图片描述




第三范式

建立在第二范式基础上的,非主键字段不能传递依赖于主键字段。消除传递依赖


班级编号,依赖于学生编号。班级名称又依赖于班级编号,这里有传递依赖

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


修改后

在这里插入图片描述




一对一怎么设计

在中国,一老公只有一个老婆,一个老婆也只有一个老公


主键共享

在这里插入图片描述



外键唯一

在这里插入图片描述




一对多怎么设计

每个学生只有一个学校,一个学校可以有多个学生

一对多两张表,多的表加外键


在这里插入图片描述

在这里插入图片描述




多对多怎么设计

一个学生可以选多门课,一门课也可以被多个学生选择

多对多三张表,关系表添加外键。


在这里插入图片描述




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

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

相关文章

vue3中动态添加form表单校验

<template><div><div v-for"(formData, index) in forms" :key"index"><u-form :model"formData" :rules"rules" ref"formRefs"><u-form-item label"用户名" prop"username"…

MySQL数据库练习(5)

1.建库建表 # 使用数据库 use mydb16_trigger;# 表格goods create table goods( gid char(8) primary key, name varchar(10), price decimal(8,2), num int);# 表格orders create table orders( oid int primary key auto_increment, gid char(10) not null, name varchar(10…

scrapy 爬取旅游景点相关数据(一)

第一节 Scrapy 练习爬取穷游旅游景点 配套视频可以前往B站&#xff1a;https://www.bilibili.com/video/BV1Vx4y147wQ/?vd_source4c338cd1b04806ba681778966b6fbd65 本项目为scrapy 练手项目&#xff0c;爬取的是穷游旅游景点列表数据 0 系统的环境 现在网上可以找到很多scr…

其它------

这里写目录标题 一级目录二级目录三级目录 一级目录 二级目录 三级目录

Pytorch使用教学6-张量的分割与合并

在使用PyTorch时&#xff0c;对张量的分割与合并是不可避免的操作&#xff0c;本节就带大家深刻理解张量的分割与合并。 在开始之前&#xff0c;我们先对张量的维度进行深入理解&#xff1a; t2 torch.zeros((3, 4)) # tensor([[0., 0., 0., 0.], # [0., 0., 0., 0.…

异或和+博弈论

1.最后状态a1a2a3...an0,显然a1^a2^a3...^an0 2.对ai操作&#xff0c;变成new ai,等价于ai异或一个数字x,使得ai^xnew ai 3.因此得出结论&#xff1a;对某一堆石子(ai)的操作实际上等同于对该堆石子的异或 4.当前我的状况&#xff1a;a1^a2^a3...^an0,假设上一步,你的状况a1^a2…

C语言边界互通传送迷宫

目录 注意事项开头程序程序的流程图程序输入与输出的效果结尾 注意事项 程序里有关字符’\033’的输出都关于Sunshine-Linux的其中一篇博客——《printf函数高级用法设置打印字体颜色和背景色等》 开头 大家好&#xff0c;我叫这是我58。今天&#xff0c;我们来看一下我用C语…

现代Java开发:使用jjwt实现JWT认证

前言 jjwt 库 是一个流行的 Java 库&#xff0c;用于创建和解析 JWT。我在学习spring security 的过程中看到了很多关于jwt的教程&#xff0c;其中最流行的就是使用jjwt实现jwt认证&#xff0c;但是教程之中依然使用的旧版的jjwt库&#xff0c;许多的类与方法已经标记弃用或者…

“分布式” 和 “集群”

“分布式” 和 “集群” 是计算机系统领域中的两个重要概念&#xff0c;它们在设计和实现现代计算架构时经常被提到。虽然它们有重叠之处&#xff0c;但也有显著的区别。 集群&#xff08;Cluster&#xff09; 集群 是由多个计算节点&#xff08;通常是计算机或服务器&#x…

国科大《人工智能原理与算法》2021年期末试题+2024经验(2025指南)

启发式路径算法(Pohl,1977)是一种最佳优先搜索,它的评估函数是: f(n)=(2−w)⋅g(n)+w⋅h(n)f(n)=(2−w)⋅g(n)+w⋅h(n) 假设 hh 是可采纳的。 ww 取什么值能保证算法是最优的?当 w=0w=0,w=1w=1,w=2w=2 时,分别是什么搜索算法?本题以并字棋(圈与十字游戏)为例练习博…

InsCode GPU服务器快速使用

文章目录 1. 背景介绍2. 环境配置 1. 背景介绍 InsCode服务器地址&#xff1a;https://inscode.csdn.net/workbench?tabcomputed。 2. 环境配置 新建环境后&#xff0c;按照如下步骤快速配置&#xff0c;以便后续执行深度学习模型训练。 数据 openlane 环境依赖 Copy Mini…

数据结构与算法--顺序表(Java)

&#x1f4dd;个人主页&#x1f339;&#xff1a;誓则盟约 ⏩收录专栏⏪&#xff1a;Java SE &#x1f921;往期回顾&#x1f921;&#xff1a;Java SE--基本数据类型&#xff08;详细讲解&#xff09; &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 什么…

【Python面试题收录】Python编程基础练习题②(数据类型+文件操作+时间操作)

本文所有代码打包在Gitee仓库中https://gitee.com/wx114/Python-Interview-Questions 一、数据类型 第一题 编写一个函数&#xff0c;实现&#xff1a;先去除左右空白符&#xff0c;自动检测输入的数据类型&#xff0c;如果是整数就转换成二进制形式并返回出结果&#xff1b…

昇思25天学习打卡营第23天|CV-ResNet50迁移学习

打卡 目录 打卡 迁移学习 实战练习 数据准备 数据处理 数据处理函数 数据处理流程 数据可视化 训练模型 构建Resnet50网络 固定特征进行训练 network 的输出 训练和评估 可视化模型预测 掌握迁移学习的重点在于&#xff0c;了解你的模型结构&#xff0c;通过冻结…

数据库安全审计系统:“可视化、可控化、智能化”护航数据安全

随着政府、企事业单位的业务规模逐步扩大&#xff0c;数据库的数量明显增长&#xff0c;各数据库的访问量激增&#xff0c;数据库安全隐患也日益扩大&#xff0c;主要体现如下&#xff1a; 一是敏感信息被泄露。例如用户姓名、银行账户、联系电话、用户地址等重要信息被泄露。 …

【odoo17 | Owl】前端js钩子调用列表选择视图

概要 在我们选择多对一或者多对多字段的时候&#xff0c;经常看到可以弹出列表弹窗让人一目了然的效果&#xff0c;效果如下&#xff1a; 那么&#xff0c;这种效果是odoo本身封装好的组件&#xff0c;我们在平时的前端界面开发的时候&#xff0c;既不是后端视图的情况下&#…

【YOLOv5/v7改进系列】引入中心化特征金字塔的EVC模块

一、导言 现有的特征金字塔方法过于关注层间特征交互而忽视了层内特征的调控。尽管有些方法尝试通过注意力机制或视觉变换器来学习紧凑的层内特征表示&#xff0c;但这些方法往往忽略了对密集预测任务非常重要的被忽视的角落区域。 为了解决这个问题&#xff0c;作者提出了CF…

v-show 和 v-if 的区别 requests主要方法post、put和patch的简单区别

v-show 和 v-if 的区别 && requests主要方法&&post、put和patch的简单区别 v-show 和 v-if 的区别 v-show 和 v-if 都是 Vue 中用于控制元素显示与隐藏的指令 但它们有以下区别 v-show 通过 CSS 的 display 属性来控制元素的显示与隐藏&#xff0c;而 v-if…

数据结构(5.3_4)——线索二叉树的概念

普通二叉树找某结点前驱和后继的方法 中序线索二叉树 n个结点的二叉树&#xff0c;有n1个空链域!可用来记录前驱&#xff0c;后继的信息 中序线索二叉树的存储结构 //线索二叉树结点 typedef struct ThreadNode {ElemType data;struct BiTNode* lchild, * rchild;int ltag,…

前端面试高频50题,嘎嘎香

目录 HTML相关问题CSS相关问题JavaScript相关问题Vue.js相关问题React相关问题浏览器相关问题性能优化相关问题 1. HTML相关问题 1. 什么是Doctype&#xff1f;有什么作用&#xff1f; Doctype&#xff08;文档类型声明&#xff09;是一种标准通告&#xff0c;它告诉浏览器…