【MySQL】第四弹——表的CRUD进阶(二)数据库设计
文章目录
- 🌟范式
- 🌟表的设计
- 💫第一范式 1NF
- 🪐反例
- 🪐正例
- 💫第二范式 2NF
- 🪐反例
- 🪐正例
- 💫第三范式 3NF
- 🪐反例
- 🪐正例
- 💫表的设计方法
- 🛰️一对一关系
- 🛰️一对多关系
- 🛰️多对多关系
- 🌟表设计总结
- 💫新增-插入查询
🌟范式
数据库的范式是⼀组规则。在设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式
关系数据库有六种范式:第⼀范式(1NF)、第⼆范式(2NF)、第三范式(3NF)、巴斯-科德
范式(BCNF)、第四范式(4NF)和第五范式(5NF,⼜称完美范式),越⾼的范式数据库冗余越⼩。然⽽,普遍认为范式越⾼虽然对数据关系有更好的约束性,但也可能导致数据库IO更繁忙,因此在实际应⽤中,数据库设计通常只需满⾜第三范式即可
总结:范式描述的就是数据关系模型,一对一关系,一对多关系,多对多关系
现在有一个学生教务系统
学生,学号,课程,班级
- 一个学生 只能有一个学号,一个学号只能是一个学生(一对一)
- 一个学生只属于一个班级,一个班级可以包含多个学生(一对多)
- 一个学生可以选择多门课程,一个课程也可以包含多个学生(多对多)
🌟表的设计
- 根据一些实际的业务场景,来设计表,主要是确定数据库中有几个表,每个表是做什么的,每个表有哪些字段
OOA 面向对象分析–>OOD 面向对象设计–>OOP 面向对象编程
具体步骤
1.从需求中获得类,类对应到数据库中的实体,实体在数据空中就表现为一张一张的表,类中的属性就对应着表中的字段(列)
2.确定类与类之间的关系
3.使用SQL去创建具体的表
设计表的时候会遵守的规则,这样的规则我们称之为三大范式
💫第一范式 1NF
关系型数据库的一个最基本要求,不满足第一范式不可以称为关系型数据库
- 数据库表的每⼀列都是不可分割的原⼦数据项,而不能是集合,数组,对象,即表里的字段不可再进行拆分
🪐反例
- 举个第一范式的反例
有一个学生表
学号,姓名,年龄,班级名,学校
这些字段前四个都可以用数据类型来表示
bigint ,varchar,int,varchar
但是学校这个字段并没有数据类型来表示学校
学校还可以拆分成:学校名称,学校网址…
拆分后就可以用varchar数据类型表示
像这样可以继续拆分的字段在关系型数据库中是绝对不允许的
🪐正例
- 第一范式正例
学生表
学号,姓名,年龄,班级编号,学校名称,学校网址
虽然这样不符合数据库设计的规范,但是每一列是不可再拆分的,最起码可以表明一个学生和班级学校的关系
每一个字段都可以有一个数据类型表示,那么这个表就天然满足第一范式
💫第二范式 2NF
- 在满足第一范式的基础上,不存在非关键字段对任意候选键的部分函数依赖(存在复合主键的情况下)
- 场景:学生可以选修课程,课程有对应的学分,学生考试之后会针对每一门选修课生成相应的成绩
- 使用数据库中的表记录学生的成绩
🪐反例
- 第二范式反例
学生相关的信息通过学号确定
学分相关的信息通过课程确定
成绩通过 学生和 课程共同区分.一个学生选修的课程,经过一次考试之后会生成成绩
也就是说这个表中的 学生和课程作为复合主键来确定一个学生当前选修课的成绩
学生的姓名,年龄和课程没有关系,即姓名,年龄只依赖于学号,不依赖与课程
学分与学生没关系,即学分只依赖于课程,不依赖与学生
这里的依赖关系一定要梳理清楚
由两个或多个关键字段决定一条记录,如果一行数据中的有些字段只与关键字段中的一个有关系,我们就把这种情况叫做他存在部分函数依赖,那么这个表就不满足第二范式
我们借用这个反例继续完成这个数据表,看看可能会出现的问题
- 不满足第二范式可能会出现的问题:
-
数据冗余
学生姓名、年龄、学分这些字段都是重复出现,造成了大量的数据冗余 -
更新异常
若需要对MYSQL的学分进行调整,那么就需要更新所有记录中关于MYSQL的记录,如果一旦数据库出现异常,某些记录更新成功,某些更新失败,就会造成数据表同一门课程不同学分,数据不一致 -
插入异常
学校新开设了一门课程,已经定义好学分了,但是目前这样的表设计,每一门课程与学生的考试是对应关系,只有进行考试才会生成一条关于课程的成绩记录,记录里保存了课程的学分,也就是说,新课程在之前的数据库中没有相应的记录.因为学生成绩为空时记录没有意义 -
删除异常
毕业的学生需要全部删除,删除记录的同时,也可能把课程对应的学分全部删除,导致一段时间内,数据中没有课程和学分相应的信息
🪐正例
- 第二范式正例
这样的表设计,每张表都有非主键字段,都强依赖于主键,满足第二范式
也就是说一个表中没有复合主键(主键只有一列)那么这种表就天然满足第二范式
💫第三范式 3NF
- 在第二范式的基础上,不存在非关键字段,对任一候选键的传递依赖
场景:描述学生就读于哪个学院
🪐反例
- 第三范式反例
现在要描述学生,可以很明显的判定出 学号就是学生表的主键
这个表的设计中,姓名和年龄与学号强相关
学院网址与所属学院强相关
描述清楚学生所属学院,只需要把学生和学院建立一个关联关系,此时可以看出两种强相关关系出现在同一条记录
两个强相关系存在传递现象
学号–>所属学院–>学院网址
这种传递关系称之为 传递依赖
这样的表设计不满足第三范式,因为存在传递依赖
🪐正例
- 第三范式正例
根据学生和学院的关系,拆分为两张表即可
这样的表设计,两张表都依赖于自己表中的主键,学生表可以通过外键与学院之间建立关联关系
第三范式可以解决数据冗余,更新异常,插入异常,删除异常的问题
💫表的设计方法
1.在场景中找到实体
2.确定实体与实体间的关系
🛰️一对一关系
比如教务系统的登录界面
像这样的场景,一般对应着两个实体,一个实体是用户(包括学生,老师),另一个实体是账号
用户:记录个人信息,姓名,班级,QQ号,手机号
账号:登录名,密码
一个用户只能有一个账号,一个账号只能给一个用户使用,不能共享
在设计表之前先按上面的句式把实体之间的关系列出来
- 针对一对一关系,设计表时,有两种方式
🛰️一对多关系
比如学生和班级之间的关系
一个学生只能存在于一个班级,一个班级中可以有多个学生
- 创建表:
1.分别为不同的实体创建表–学生表,班级表
2.建立表与表之间的关联关系
class(class_id,name);
student(student_id,name,age,class_id);
通过学生记录中的class_id 可以表示学生在哪个班级,每个学生都关联了一个班级
🛰️多对多关系
一个学生可以选修多门课程
一门课程也可以被多名学生选修
-
分别创建实体表
-
创建关系表,在关系表中为实体之间创建关联关系
通过关系表,就可以把学生修改的课程清楚的记录下来,这样设计同时也满足了第二范式的要求,如果要修改学生的年龄只需要修改学生表中的年龄字段即可,不会影响关系表
- 学生选修课成绩表
1.班级表(班级编号,班级名)
create table class(
class_id bigint primary key auto_increment,
name varchar(50) not null
);
2.学生表(学生编号,学号,姓名,年龄,右键,班级编号)
create table student(
student_id bigint primary key auto_increment,
sn varchar(6) unique,
name varchar(50) not null,
mail varchar(50),
class_id bigint,
foreign key (class_id) references class(class_id)
);
3.课程表(课程编号,课程名)
create table course(
course_id bigint primary key auto_increment,
name varchar(50) not null
);
4.成绩表(编号,学生编号,课程编号,成绩)
create table score(
score_id bigint primary key auto_increment,
student_id bigint,
course_id bigint,
score decimal(5,2),
foreign key (student_id) references student (student_id),
foreign key (course_id) references course (course_id)
);
班级表与学生表之间是一对多的关系
学生表与课程表之间是多对多的关系,通过一个关系表进行关联
🌟表设计总结
💫新增-插入查询
- 插入查询结果
新建一张表,把旧表的指定列数据导入到新表中
语法:
insert into table_name [(column [,..])] select ...
- 使用insert into select 语句将旧表插入到目标表
相关文章:
【MySQL】第四弹——表的CRUD进阶(二)数据库设计
文章目录 🌟范式🌟表的设计💫第一范式 1NF🪐反例🪐正例 💫第二范式 2NF🪐反例🪐正例 💫第三范式 3NF🪐反例🪐正例 💫表的设计方法&…...
Unity基础学习(十五)核心系统——音效系统
目录 一、关于音频文件的导入相关 二、音频源组件Audio Source 三、Audio Listener的介绍 四、关于播放音乐的方式 五、麦克风输入相关 Microphone 类方法与属性总览 1. Start 方法 2. End 方法 3. IsRecording 方法 4. GetPosition 方法 5. devic…...
计算机视觉----常见卷积汇总
普通卷积 普通卷积大家应该都比较熟悉了,如果不熟悉的话,可以参考我之前的博客,或者去网上自行百度。这里主要想补充两个知识点。一:卷积核参数量怎么算? 二:如何高效的并行运算卷积滑窗? …...
【人工智能-agent】--Dify+Mysql+Echarts搭建了一个能“听懂”人话的数据可视化助手!
Echarts官网:https://echarts.apache.org/zh/index.html ECharts 是一个由百度团队开发的、基于 JavaScript 的开源可视化图表库,它提供了丰富的图表类型和强大的交互功能,能够帮助开发者轻松创建专业级的数据可视化应用。 核心特点 丰富的图…...
【专栏启动】开篇:为什么是 Django + Vue3?测试平台的技术选型与架构蓝图
【专栏启动】开篇:为什么是 Django Vue3?测试平台的技术选型与架构蓝图 前言一、为什么是 Django Vue3?二、测试平台的架构设计蓝图三、测试平台模块功能概述 结语 前言 一个高效、稳定、易用的测试平台,不仅能够帮助团队提升测…...
Rust 学习笔记:关于 Vector 的练习题
Rust 学习笔记:关于 Vector 的练习题 Rust 学习笔记:关于 Vector 的练习题哪个调用会报错?以下代码能否通过编译?若能,输出是?以下代码能否通过编译?若能,输出是?以下代码…...
Modbus TCP转Profinet网关:数字化工厂异构网络融合的核心枢纽
在现代工业生产中,随着智能制造和工业互联网的不断发展,数字化工厂成为了制造业升级的重要方向。数字化工厂的核心在于实现设备、数据和人的互联互通,而这其中,通信协议扮演着至关重要的角色。今天,我们就来探讨开疆智…...
精益数据分析(62/126):从客户访谈评分到市场规模估算——移情阶段的实战进阶
精益数据分析(62/126):从客户访谈评分到市场规模估算——移情阶段的实战进阶 在创业的移情阶段,科学评估用户需求与市场潜力是决定产品方向的关键。今天,我们结合Cloud9 IDE的实战经验与《精益数据分析》的方法论&…...
各类开发教程资料推荐,Java / python /golang /js等
更多资源在文末👇👇👇👇👇👇👇👇👇 1. 入门首选(易学且应用广) Python 特点:语法简洁、易读,社区资源丰富。 用途&#…...
现代健康养生小贴士
在忙碌的现代生活中,掌握一些简单实用的健康养生技巧,能轻松为身体 “充电”,提升生活质量。以下从饮食、运动、作息等方面,为你带来科学易执行的养生建议。 一、饮食:吃对食物,为健康加分 早餐要吃好&am…...
每日一道leetcode(新学数据结构版)
208. 实现 Trie (前缀树) - 力扣(LeetCode) 题目 Trie(发音类似 "try")或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动…...
ChromaDB 向量库优化技巧实战
chroma 一步步使用 安装 # 安装chromadb pip install chromadb,sentence_transformers# 不启动服务会出现sock.connect(sa)TimeoutError: timed out chroma run服务启动后,您将看到类似以下输出: 建立连接 部署完成后,需要建立与Chroma服…...
全国各地区经纬度数据(包含省、市、县)
全国各地区经纬度数据(包含省、市、县) 1、指标:行政区划代码、省份、城市、经度、纬度 2、来源:高德地图 3、用途:可用于空间相关研究 4、下载链接: 全国各地区经纬度数据(包含省、市、县…...
记录一下seata后端数据库由mariadb10切换到mysql8遇到的SQLException问题
文章目录 前言一、问题记录二、参考帖子三、记录store.db.driverClassName 前言 记录一下seata后端数据库由mariadb10切换到mysql8遇到的SQLException问题。 一、问题记录 17:39:23.709 ERROR --- [ionPool-Create-1134013833] com.alibaba.druid.pool.DruidDataSource : …...
【Python 面向对象】
Python 的面向对象编程(OOP)通过类(Class)和对象(Object)实现代码结构化,支持封装、继承和多态三大特性。以下是系统化指南: 一、类与对象基础 1. 定义类 class Dog:# 类属性&…...
软考软件评测师——计算机组成与体系结构
目录 计算机寻址方式详解与对比分析 一、立即寻址 二、直接寻址 三、间接寻址 四、寄存器寻址 五、寄存器间接寻址 六、变址寻址 七、基址寻址 八、相对寻址 九、综合对比分析 计算机寻址方式详解与对比分析 一、立即寻址 核心概念 指令操作码后直接携带操作数值&a…...
宝元LNC数控数据采集方式、跨平台采集通讯方案介绍
文章目录 采集效果图通讯方案介绍技术名词解释技术细节小结 采集效果图 通讯方案介绍 老版本宝元:必须走TCP通讯,如LNC568A系列 今天主要介绍新版本的宝元,如采用M6800控制器的5800系列系统等 新版本宝元通讯方式: ①sdk通讯&…...
ZFile与Cpolar技术结合实现远程数据实时访问与集中管理的可行性分析
文章目录 前言1.关于ZFile2.本地部署ZFile3.ZFile本地访问测试4.ZFile的配置5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定ZFile公网地址 前言 在信息爆炸的年代,每个现代人都在数字浪潮中扮演着独特的角色。不论是商务精英、影像创作者还是学术达人&…...
JS手写代码篇---手写 Object.create
JS手写代码篇 在做手写题的时候,我们要思考两个问题 这个代码的作用是什么能够实现的效果是什么样子 1. 手写 Object.create 思路:创造一个对象,类似于Object.create()方法>将obj作为原型 // 手写 Object.create function create (ob…...
homeassistant安装
这里写自定义目录标题 homeassistant安装(windows)安装virtual boxhaos下载haos安装docker镜像地址更换安装File editor安装hacs安装Xiaomi Miot Auto问题排查 homeassistant安装(windows) 安装virtual box 百度搜索virtual box…...
Pythonnet - 实现.NET Core和Python进行混合编程
1 安装Pythonnet包 2...
C++23 新特性:ranges::contains 与 ranges::contains_subrange
文章目录 ranges::containsranges::contains_subrange编译器支持总结 C23 标准带来了许多令人兴奋的新特性,其中就包括了 ranges::contains 和 ranges::contains_subrange 这两个算法。这两个算法由提案 P2302R4 提出,它们为 C 程序员提供了更加丰富和…...
(C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)
目录 前言: 源代码: product.h product.c fileio.h fileio.c main.c 代码解析: 一、程序结构概述 二、product.c 函数详解 1. 初始化商品列表 Init_products 2. 添加商品 add_product 3. 显示商品 display_products 4. 修改商品 mo…...
Framebuffer显示bmp图片
代码: /* 标准输入输出头文件,提供文件操作和输入输出函数(如printf)*/ #include <stdio.h>/* 文件控制操作头文件,提供文件打开模式(如O_RDWR)和文件控制函数 */ #include <fcntl.h&…...
常用负载均衡技术有哪些?不同网络层面上的网络负载均衡技术
前言 负载均衡是一种策略,它能让多台服务器或多条链路共同承担一些繁重的计算或I/O任务,从而以较低成本消除网络瓶颈,提高网络的灵活性和可靠性。 在系统管理员发现网络性能不好时,可以通过网络负载均衡来分配资源,以…...
由于复制槽导致wal大量堆积的处理方案
文章目录 环境症状问题原因解决方案 环境 系统平台:N/A 版本:N/A 症状 数据库中的pg_wal占用大量空间,且不删除。 问题原因 复制槽占用早期的wal日志,导致wal归档后无法正常删除。 1. 排查复制槽情况: highgo# …...
用FileCodeBox打造私有文件传输:Ubuntu环境保姆级部署教程!
文章目录 前言1.Docker部署2.简单使用演示3. 安装cpolar内网穿透4. 配置公网地址5. 配置固定公网地址 前言 在数字化浪潮席卷全球的当下,文件传输已成为现代职场的高频需求。当谈及资料交换场景时,许多用户往往抱怨传统工具存在界面复杂、功能卡顿、广告…...
从卡顿到丝滑:JavaScript性能优化实战秘籍
引言 在当今的 Web 开发领域,JavaScript 作为前端开发的核心语言,其性能表现对网页的加载速度、交互响应以及用户体验有着举足轻重的影响。随着 Web 应用的复杂度不断攀升,功能日益丰富,用户对于网页性能的期望也越来越高。从电商…...
win11平台下的docker-desktop中的volume位置问题
因为需要搞个本地的mysql数据库,而且本地安装的程序较多,不想再安mysql了,就想到使用docker来安装。而且因为数据巨大,所以想到直接使用转移data文件夹的方式。 各种查询,而且还使用ai查询,他们都提到&…...
掌握Multi-Agent实践(七):基于AgentScope分布式模式实现多智能体高效协作[并行加速大模型辅助搜索、分布式多用户协同辩论赛]
之前的案例都是运行在单台机器上以单进程形式运行,受限于 Python 的全局解释器锁,实际只能有效利用一个 CPU 的计算资源,并且无法支持多个用户从自己的电脑上接入同一个 Multi-Agent 应用进行交互。为了提高运行效率并支持多用户接入同一个应用中,AgentScope 提供了分布式…...
2023CCPC河南省赛暨河南邀请赛个人补题ABEFGHK
Dashboard - 2023 CCPC Henan Provincial Collegiate Programming Contest - Codeforces 过题难度:A H F G B K E 铜奖: 2 339 银奖: 3 318 金奖: 5 523 A: 直接模拟 // Code Start Here int t;cin >> t;while(t-…...
基于基金净值百分位的交易策略
策略来源:睿思量化小程序 基金净值百分位,是衡量当前基金净值在过去一段时间内的相对位置。以近一年为例,若某基金净值百分位为30%,意味着过去一年中有30%的时间基金净值低于当前值,70%的时间高于当前值。这一指标犹如…...
Ubuntu20.04下如何源码编译Carla,使用UE4源码开跑,踩坑集合
一、简介 作为一个从事算法研究的人员,无人驾驶仿真一直是比较重要的一部分,但是现在比较常见的算法验证都是在carla这个开源仿真平台上做的,所以我有二次开发carla的需求,今天就来讲讲编译CARLA。 网上的教材很多,但还是推荐大家看官网教程:Linux build - CARLA Simul…...
Windows 环境下 Docker Desktop 安装 + 汉化
一、WSL2Ubuntu20.04以及Docker Desktop安装 在开发过程中,Docker 是一款极为实用的工具。本教程专为 Windows 用户打造,将全面且细致地讲解 Docker Desktop 的安装与配置步骤,助您迅速入门并熟练掌握。同时,考虑到语言使用习惯&…...
HDMI信号采集器连OBS没有声音的问题
Windows中的设置 windows中可以按客服发来的视频做参考。 视频教程: https://jvod.300hu.com/vod/product/79b234d5-81f0-4255-8680-693de7b4b0d4/715859bc4d83490bb977d8bc0061bd5e.mp4 Linux中的设置 在linux中发现视频不太一样,设置完没有声音。…...
Remote Desktop安卓远程无法使用中文输入法
新版remote desktop包括windows app都无法使用中文输入法 下载旧版才能用8.8.1.56.294 感谢评论区大哥提供的方案...
maven报错 You have to use a classifier to attach supplemental artifacts
完整报错 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:3.3.0:jar (default-jar) on project **: You have to use a classifier to attach supplemental artifacts to the project instead of replacing them. -> [Help 1] 解决办法 修改…...
maven dependencyManagement标签作用
dependencyManagement作用 1. 确保多模块间依赖版本一致 在父 POM 中定义依赖的版本、作用域(Scope)、排除项(Exclusions)等,子模块引用这些依赖时无需指定版本 2.灵活覆盖 子模块可以按需覆盖父 POM 中定义的版…...
Flink 运维监控与指标采集实战(Prometheus + Grafana 全流程)
一、引言:为什么 Flink 运维监控如此重要? 在实时计算场景中,Flink 作业 724 小时运行,对性能、资源、故障感知、状态变化的实时监控非常关键。没有有效的运维可观测体系: 不知道任务是否在稳定运行 发生问题难以快速定位 无法感知背压、延迟、反压等状态 因此,构建完善…...
计算机视觉----基于锚点的车道线检测、从Line-CNN到CLRNet到CLRKDNet 本文所提算法Line-CNN 后续会更新以下全部算法
本文所提算法如下: 叙述按时间顺序 你也可以把本文当作快速阅读这几篇文献的一个途径 所有重要的部分我都已经标注并弄懂其原理 方便自己也是方便大家 Line-CNN:基于线提议单元的端到端交通线检测 摘要 交通线检测是一项基础且具有挑战性的任务。以往的…...
Spring MVC HttpMessageConverter 的作用是什么?
HttpMessageConverter (HTTP 消息转换器) 是 Spring MVC 框架中一个非常核心的组件,它的主要作用是在 HTTP 请求、响应体与 Java 对象之间进行双向转换。 核心作用: 读取请求体 (Request Body) 到 Java 对象: 当 Controller 方法的参数使用 …...
WebGL 3着色器和GLSL
我们之前提到过着色器和GLSL,但是没有涉及细节,你可能已经对此有所了解, 但以防万一,这里将详细讲解着色器和GLSL。 在工作原理中我们提到,WebGL每次绘制需要两个着色器, 一个顶点着色器和一个片段着色器&…...
Hugging Face 中 LeRobot 使用的入门指南
相关源文件 .github/ISSUE_TEMPLATE/bug-report.yml .github/PULL_REQUEST_TEMPLATE.md README.md examples/1_load_lerobot_dataset.py examples/2_evaluate_pretrained_policy.py examples/3_train_policy.py lerobot/scripts/eval.py lerobot/scripts/train.py 本页面提供 …...
从零开始学习three.js(18):一文详解three.js中的着色器Shader
在WebGL和Three.js的3D图形渲染中,着色器(Shader) 是实现复杂视觉效果的核心工具。通过编写自定义的着色器代码,开发者可以直接操作GPU,实现从基础颜色渲染到动态光照、粒子效果等高级图形技术。本文将深入解析Three.j…...
Trae - 国人Cursor的免费平替产品
前情提要:Cursor-零基础使用flutter完成贪吃蛇游戏-迄今为止世上最牛的AI编辑工具,不需要程序员也可以编程 Cursor 不是我的最佳选择 Cursor 是基于 VSCode 进化而来,虽然好用,但总结下来有几点点是我有所顾虑的。 第一&#x…...
【PmHub后端篇】PmHub中Seata分布式事务保障任务审批状态一致性
在分布式系统中,事务管理是保证数据一致性的关键。本文将深入探讨在PmHub系统中,如何利用Seata分布式事务来保证任务审批状态的一致性。分布式事务在面试中是常见的考点,网上教程多偏理论,而实际项目中的应用更为关键。 1 事务基…...
2025年长三角高校数模竞赛B题Q1-Q3详细求解与Q4详细分析
B题 空气源热泵供暖的温度预测 问题背景 空气源热泵是一种与中央空调类似的设备,其结构主要由压缩主机、热交换 器以及末端构成,依靠水泵对末端房屋提供热量来实现制热。空气源热泵作为热 惯性负载,调节潜力巨大。工作时通过水循环系统将…...
插槽(Slot)的使用方法
插槽是Vue.js中一个强大的功能,允许你在组件中预留位置,让父组件可以插入自定义内容。以下是插槽的主要使用方法: 基本插槽 <!-- 子组件 ChildComponent.vue --> <template><div><h2>子组件标题</h2><slo…...
Milvus Docker 部署教程
1. 环境准备 确保您的系统已安装: DockerDocker ComposePython (用于运行客户端代码) 2. 项目结构 创建项目目录并设置以下文件: milvus-docker/ ├── docker-compose.yml ├── main.py3. 配置文件 docker-compose.yml version: 3.5services:…...
Vue 3 中 watch 的使用与深入理解
在 Vue 3 的 Composition API 中,watch 是一个非常强大的工具,用于监听响应式数据的变化并做出相应的处理。本文将通过一段实际代码来深入解析 watch 的行为和使用技巧。 🧩 示例代码回顾 import { reactive, watch } from vueconst state …...