MySql数据库从0-1学习-第三天多表设计学习

news2025/9/20 2:40:35

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

  • 一对多(多对一)
  • 多对多
  • 一对一

一对多

需求:根据需求,完成部门和员工表的设计

一对多,很多人会使用外键,推荐使用逻辑外键

在这里插入图片描述

# 用户表
create table tb_user
(
    id          bigint unsigned primary key auto_increment comment '用户id',
    name        varchar(50)      not null comment '用户名',
    password    varchar(50)      not null comment '密码',
    nick_name   varchar(50)      not null comment '昵称',
    age         tinyint unsigned not null comment '年龄',
    sex         tinyint unsigned not null comment '性别',
    phone       varchar(20)      not null comment '手机号',
    dept_id     bigint unsigned  not null comment '部门id',
    create_time datetime         not null comment '创建时间',
    update_time datetime         not null on update now() comment '更新时间'
) comment '用户表';
# 部门表
create table tb_dept
(
    id          bigint unsigned primary key auto_increment comment '部门id',
    name        varchar(50) not null comment '部门名称',
    create_time datetime    not null comment '创建时间',
    update_time datetime    not null on update now() comment '更新时间'
) comment '部门表';

一对一

例如某个表有10个字段,字段太多,特别臃肿,这个时候就需要进行拆分,将非必要信息存储在另一个表中,例如将用户表的其他信息拆分出去

# 用户表
create table tb_user
(
    id          bigint unsigned primary key auto_increment comment '用户id',
    name        varchar(50)     not null comment '用户名',
    password    varchar(50)     not null comment '密码',
    dept_id     bigint unsigned not null comment '部门id',
    create_time datetime        not null comment '创建时间',
    update_time datetime        not null on update now() comment '更新时间'
) comment '用户表';

# 用户表
create table tb_user_info
(
    id          bigint unsigned primary key auto_increment comment '用户信息id',
    user_id     bigint unsigned unique not null comment '用户id',
    nick_name   varchar(50)            not null comment '昵称',
    age         tinyint unsigned       not null comment '年龄',
    sex         tinyint unsigned       not null comment '性别',
    phone       varchar(20)            not null comment '手机号',
    create_time datetime               not null comment '创建时间',
    update_time datetime               not null on update now() comment '更新时间'
) comment '用户信息表';

多对多

学生和课程关系,一个学生对应多个课程,一个课程也对应多个学生

# 学生表
create table tb_student
(
    id          bigint unsigned primary key auto_increment comment '学生id',
    name        varchar(50) not null comment '学生名字',
    create_time datetime    not null comment '创建时间',
    update_time datetime    not null on update now() comment '更新时间'
) comment '学生表';

#中间表
create table tb_student_class
(
    id          bigint unsigned primary key auto_increment comment '中间表id',
    student_id  bigint unsigned not null comment '学生id',
    class_id    bigint unsigned not null comment '课程id',
    create_time datetime        not null comment '创建时间',
    update_time datetime        not null on update now() comment '更新时间'
) comment "学生和课程中间表";

# 课程表
create table tb_class
(
    id          bigint unsigned primary key auto_increment comment '课程id',
    name        varchar(50) not null comment '课程名字',
    create_time datetime    not null comment '创建时间',
    update_time datetime    not null on update now() comment '更新时间'
) comment '用户信息表';

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

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

相关文章

IP查询在追踪网络攻击源头中的应用

随着网络攻击事件的不断增加,追踪攻击源头成为网络安全领域的重要任务之一。IP查询技术通过分析网络流量中的IP地址,可以帮助确定攻击的来源。本文将探讨IP查询在追踪网络攻击源头中的应用,包括其原理、方法以及实际案例分析。 IP地址查询&a…

道可云文旅元宇宙平台:全面赋能文旅产业数字化转型

随着科技的迅猛发展,元宇宙、人工智能和虚拟数字人等技术逐渐成为推动社会进步的重要力量。在这一背景下,道可云文旅元宇宙平台以其独特的创新理念和前沿技术,为数字文博领域带来了革命性的变革。 道可云文旅元宇宙平台运用先进的元宇宙、人…

【软考---系统架构设计师】计算机网络章节

目录 一、TCP/IP协议族 (1)基本介绍 (2)TCP和UDP的区别 (3)DNS协议 (4)DHCP协议 二、网络规划与设计 (1)需求分析 (2)通信规范…

OpenResty,Nginx实现接口验签与黑名单控制

介绍 nginx与openresty是两种优秀知名的7层负载均衡软件,nginx以其出色的性能和稳定性成为首选,而openresty则是在Nginx基础上构建的,支持嵌入Lua语言,大幅提升了开发效率。 安装OpenResty 版本 openresty-1.25.3.1-win64下载地…

【leetcode面试经典150题】36. 旋转图像(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主,题解使用C语言。(若有使用其他语言的同学也可了解题解思路,本质上语法内容一致&…

OSCP靶场--Dibble

OSCP靶场–Dibble 考点(前端鉴权参数修改node.js代码注入 suid cp提权 ) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap 192.168.173.110 -sV -sC -Pn --min-rate 2500 -p- Starting Nmap 7.92 ( https://nmap.org ) at 2024-04-09 06:36 EDT Nmap scan repor…

一种快速移植 OpenHarmony Linux 内核的方法

移植概述 本文面向希望将 OpenHarmony 移植到三方芯片平台硬件的开发者,介绍一种借助三方芯片平台自带 Linux 内核的现有能力,快速移植 OpenHarmony 到三方芯片平台的方法。 移植到三方芯片平台的整体思路 内核态层和用户态层 为了更好的解释整个内核…

软件本地化:步骤、成本和障碍

瓦莱丽娅舍斯托博耶娃,Logrus IT翻译部门的经理,谈论了我们公司的运作方式、软件本地化是什么以及为什么它如此重要。 你能告诉我一些关于你们公司的情况吗,瓦莱丽娅?它做什么,成立多久了? Logrus IT今年…

袋鼠云春季发布会圆满落幕,构建Data+AI新质生产力

4月10日,以“DataAI,构建新质生产力”为主题的袋鼠云春季发布会圆满落幕。大会中,袋鼠云带来了一系列“AI”的数字化产品与最新行业沉淀,旨在将数据与AI紧密结合,打破传统的生产力边界,赋能企业实现更高质量…

基于springboot实现音乐网站管理系统项目【项目源码+论文说明】

基于SpringBoot实现音乐网站管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了音乐网站的开发全过程。通过分析音乐网站管理的不足,创建了一个计算机管理音乐网站的方案。文章介绍了音乐…

【pinia学习】pinia课程学习笔记

课程地址: VUE新一代状态管理工具Pinia超详细基础入门 贴两个链接: vue3官方文档 pinia官方文档 P1 《pinia的简介》 不得不说“开卷有益,学有所获”,前两天自己找pinia的官方文档好像也没找对,原来在vue3官方生态系…

万象皆歌everySings音乐与AI技术的邂逅,内测启动

在这个快节奏的数字时代,音乐依然扮演着连接人心、传递情感的重要角色。然而,音乐创作往往被视为门槛较高的艺术形式,需要复杂的理论知识和漫长的实践经验。但现在,随着人工智能技术的不断进步,让大众对音乐的获悉和交…

消息的可靠性·

面试题:Rabbitmq怎么保证消息的可靠性? 1.消费端消息可靠性保证: 消息确认(Acknowledgements): 消费者在接收到消息后,默认情况下RabbitMQ会自动确认消息(autoAcktrue)。为保证消…

JS加密:对比JScrambler和JShaman加密效果

本文,以一个实例,比对JS加密两大神器:JScrambler、JShaman的加密结果,看看谁的加密效果更好。 注:本文不是技术文章,仅仅从加密结果的“型”上简单观查,不做技术分析,仅看哪个加密代…

【学习笔记】3、逻辑门电路

3.1 MOS逻辑门电路 按照器件结构的不同形式,分为NMOS、PMOS、CMOS三种逻辑门电路。 3.1.1 CMOS CMOS电路成为主导地位的逻辑器件。工作速度:赶上甚至超过TTL电路。(早期CMOS速度慢,后来工艺提升速度变快)功耗和抗干…

【讲解下TypeScript的基础知识点】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

RK3568驱动指南|第二篇 字符设备基础-第15章 文件私有数据实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

Logistic 回归为什么适用于二分类问题?

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ Logistic 回归非常适用于二分类问题的主要原因在于它的核心机制和输出特性。首先,Logistic 回归模型基于概率的理念,通过 Sigmoid 函数转换输入特征的线性组合,将任意…

windows下安装yolov8环境(详细图文教程)

目录 一:前言 二:安装yolov8 一:前言 最近看了 YOLO 的发展史,发现在机器视觉领域的应用非常广泛,f刚好最近一直在做机器视觉的工作,特此记录下搭建yolov的环境。我们使用的版本是yolov8的就用这个作为演…

【简单讲解下WebSocket】

🌈个人主页:程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…