数据库课设实战:学生体质健康管理系统SQL建模与查询优化
简介这是一套面向计算机相关专业学生的数据库课程设计完整交付包以学生体质健康管理系统为选题适合作为期末大作业、课程设计或毕业设计的参考范例也便于初学者通过实战理解数据库设计与应用开发的完整流程。压缩包共包含5个文件整体约18.37MB涵盖项目源码压缩包、数据库SQL脚本、设计报告文档、介绍演示PPT以及说明文档从建库建表到系统实现、再到答辩展示材料一应俱全。目前已有315人学习下载具备一定的参考热度。读者可借助源码与SQL脚本快速还原可运行系统对照设计报告梳理需求分析、E-R图与表结构设计思路并直接复用PPT完成课程汇报省去从零搭建的时间成本具有较高的学习借鉴与二次开发价值。1. 从一份“数据库期末大作业”说起学生体质健康管理系统到底在做什么每年期末季总有一批同学被“数据库大作业”卡住。选题看着简单——学生体质健康管理系统无非是学生、体测项目、成绩记录几张表。但真动手才发现从 ER 图到建表、从触发器到存储过程、从查询统计到前端展示每一步都能翻车。这份“源码数据库介绍PPT设计报告”的组合本质上是一套完整的数据库课程设计交付物它要证明你能把现实业务抽象成关系模型能用 SQL 把业务规则固化进数据库还能把数据变成可读的报告和界面。它适合三类人正在做数据库课设、需要一套可跑通参考实现的学生想复习 SQL 建模与查询、拿真实业务练手的开发者以及需要快速搭一个“学生健康数据管理”原型、再按自己需求改字段和报表的从业者。核心不是界面多漂亮而是数据模型是否合理、约束是否到位、统计查询是否写得出来。下面按“先立模型、再落库、后查数、最后避坑”的顺序拆开讲。2. 先立住数据模型学生体质健康管理系统的表结构与关系设计2.1 从业务动作反推实体学生、体测项目、成绩记录三张主表做课设最容易犯的错是先画界面再想表。正确顺序是把业务里反复出现的名词圈出来。学生体质健康管理系统里稳定存在的实体只有三个——学生、体测项目、每次体测的成绩记录。学院、班级、性别这些是学生的属性不是独立实体身高体重肺活量这些是体测项目的属性不是成绩表的列。把实体定下来关系自然浮现一个学生有多条成绩记录一个体测项目出现在多条成绩记录里所以成绩表是典型的多对多桥接表外加“测试时间”“测试批次”这类维度。常见做法是再加一张“体测批次表”用来区分春季/秋季、第几学年。这样统计“某学年某项目全校均值”时不用从成绩表里硬解析日期字符串。表结构大致如下表名作用关键字段约束student学生基本信息student_id(PK), name, gender, class_idstudent_id 唯一test_item体测项目字典item_id(PK), item_name, unit, higher_betteritem_name 唯一test_batch体测批次batch_id(PK), batch_name, test_date批次名唯一score_record成绩记录核心record_id(PK), student_id(FK), item_id(FK), batch_id(FK), score_value三外键联合唯一注意higher_better这个字段很关键。50米跑是数值越小越好肺活量是越大越好。如果不把方向存进字典表后面算“优秀率”时就得在 SQL 里写一堆 CASE WHEN改一个项目就要改查询。2.2 用 SQL 建表主外键、唯一约束和默认值一次写对建表语句是课设的“地基”评分老师第一眼就看这里。下面这段 MySQL 8.0 风格的 DDL 可以直接抄注意字符集、外键动作和联合唯一约束-- 学生表学号做主键班级用字符串先存后续可拆班级表 CREATE TABLE student ( student_id VARCHAR(20) NOT NULL COMMENT 学号, name VARCHAR(50) NOT NULL COMMENT 姓名, gender CHAR(1) NOT NULL DEFAULT M COMMENT M/F, class_id VARCHAR(30) NOT NULL COMMENT 班级编号, enroll_year SMALLINT NOT NULL COMMENT 入学年份, PRIMARY KEY (student_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 体测项目字典higher_better 标记成绩方向 CREATE TABLE test_item ( item_id INT NOT NULL AUTO_INCREMENT, item_name VARCHAR(50) NOT NULL COMMENT 项目名如50米跑, unit VARCHAR(10) NOT NULL COMMENT 单位如秒、毫升, higher_better TINYINT(1) NOT NULL DEFAULT 1 COMMENT 1越大越好0越小越好, PRIMARY KEY (item_id), UNIQUE KEY uk_item_name (item_name) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 成绩记录三个外键 联合唯一防止同一学生同一批次同一项目重复录入 CREATE TABLE score_record ( record_id BIGINT NOT NULL AUTO_INCREMENT, student_id VARCHAR(20) NOT NULL, item_id INT NOT NULL, batch_id INT NOT NULL, score_value DECIMAL(8,2) NOT NULL COMMENT 成绩数值, PRIMARY KEY (record_id), UNIQUE KEY uk_stu_item_batch (student_id, item_id, batch_id), CONSTRAINT fk_score_stu FOREIGN KEY (student_id) REFERENCES student(student_id) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_score_item FOREIGN KEY (item_id) REFERENCES test_item(item_id), CONSTRAINT fk_score_batch FOREIGN KEY (batch_id) REFERENCES test_batch(batch_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;逻辑说明score_record上的联合唯一键uk_stu_item_batch是整套设计的“后悔药”。没有它同一学生同一项目会被重复插入后面算平均分直接失真。外键ON DELETE CASCADE只加在学生表上意思是学生退学删除后成绩一并清理项目和批次是字典数据不允许级联删除避免误删字典导致历史成绩丢失。参数上DECIMAL(8,2)足够存肺活量最大约 9999.99和跑步秒数不要用 FLOAT否则统计求和会出现 0.30000000000000004 这种玄学尾数。2.3 索引怎么加别等查询慢了才想起它课设数据量通常只有几千行但老师会看“你有没有索引意识”。最该加索引的地方是成绩表的三个外键列和常用过滤列。InnoDB 会自动为外键创建索引但联合查询场景下单独索引不够。比如“查某班级某批次所有项目成绩”过滤条件是class_id batch_id而class_id在学生表。常见做法是在成绩表冗余一个class_id字段并加联合索引或者接受一次 JOIN。数据量小的时候 JOIN 完全够用但如果你要写进设计报告可以这样表述-- 按学生查成绩是最频繁的操作联合索引覆盖 student_id batch_id ALTER TABLE score_record ADD INDEX idx_stu_batch (student_id, batch_id); -- 按项目统计时需要 item_id batch_id ALTER TABLE score_record ADD INDEX idx_item_batch (item_id, batch_id);参数说明联合索引遵循最左前缀idx_stu_batch能加速“某学生全部成绩”和“某学生某批次成绩”但单独查 batch_id 用不上。不要给score_value加索引数值列范围查询选择性低加了反而拖慢写入。索引不是越多越好课设里三到四个足矣。3. 把业务规则写进数据库视图、触发器与存储过程的落地写法3.1 用视图封装“学生体测总览”让查询不再拼五张表设计报告里如果只写“我建了表”分数不会高。数据库课设的加分项是把复杂查询封装成视图。学生体质健康管理系统最常用的查询是每个学生每批次的总分、平均分、参测项目数。如果每次都写 JOIN GROUP BY既容易错也不优雅。建一个视图CREATE OR REPLACE VIEW v_student_batch_summary AS SELECT s.student_id, s.name, s.class_id, b.batch_id, b.batch_name, COUNT(r.record_id) AS item_count, ROUND(AVG(r.score_value), 2) AS avg_score, SUM(r.score_value) AS total_score FROM student s JOIN score_record r ON r.student_id s.student_id JOIN test_batch b ON b.batch_id r.batch_id GROUP BY s.student_id, s.name, s.class_id, b.batch_id, b.batch_name;逻辑说明视图本身不存数据每次查询实时计算适合课设这种数据量。COUNT(r.record_id)统计实际参测项目数比COUNT(*)更准确因为 LEFT JOIN 时无成绩行也会被计数。ROUND(AVG(...),2)保留两位避免报告里出现一长串小数。注意 MySQL 视图里不能直接用子查询做 FROM但 JOIN 和 GROUP BY 没问题。如果老师要求“物化视图”MySQL 没有原生支持可以用定时事件把结果写入一张汇总表这是进阶做法。3.2 触发器守住数据质量成绩范围校验与自动日志触发器是课设里最容易“炫技”也最容易翻车的部分。一个合理的用法是在成绩插入前校验数值是否在合理范围并把每次修改写入日志表。先建日志表CREATE TABLE score_audit_log ( log_id BIGINT NOT NULL AUTO_INCREMENT, record_id BIGINT NOT NULL, old_value DECIMAL(8,2), new_value DECIMAL(8,2), op_type VARCHAR(10) NOT NULL COMMENT INSERT/UPDATE/DELETE, op_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (log_id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;再写插入前校验触发器DELIMITER $$ CREATE TRIGGER trg_score_before_insert BEFORE INSERT ON score_record FOR EACH ROW BEGIN -- 成绩不能为负肺活量类项目上限 9999跑步类下限 0 IF NEW.score_value 0 OR NEW.score_value 9999 THEN SIGNAL SQLSTATE 45000 SET MESSAGE_TEXT 成绩数值超出合理范围(0-9999); END IF; END$$ DELIMITER ;逻辑说明SIGNAL SQLSTATE 45000是 MySQL 抛自定义错误的写法前端收到后可以提示用户。触发器里不要写 SELECT 大表否则每次插入都拖慢。参数上范围写死 0-9999 是妥协更严谨的做法是从test_item表读上下限但触发器里查表会引入锁竞争课设阶段用固定范围足够。更新触发器同理在BEFORE UPDATE里把OLD.score_value和NEW.score_value写入日志表。3.3 存储过程做批量统计一次调用生成班级报表设计报告里如果有“存储过程”说明你理解了数据库不只是存数据还能算数据。下面这个存储过程接收批次 ID输出各班平均分和参测率DELIMITER $$ CREATE PROCEDURE sp_class_report(IN p_batch_id INT) BEGIN SELECT s.class_id, COUNT(DISTINCT s.student_id) AS stu_total, COUNT(DISTINCT r.student_id) AS stu_tested, ROUND(COUNT(DISTINCT r.student_id) * 100.0 / NULLIF(COUNT(DISTINCT s.student_id),0), 2) AS test_rate, ROUND(AVG(r.score_value), 2) AS avg_score FROM student s LEFT JOIN score_record r ON r.student_id s.student_id AND r.batch_id p_batch_id GROUP BY s.class_id; END$$ DELIMITER ;逻辑说明LEFT JOIN保证没参测的学生也被统计进分母COUNT(DISTINCT r.student_id)只数有成绩的人两者相除就是参测率。NULLIF(...,0)防止某班学生数为零时除零错误。调用方式CALL sp_class_report(1);。参数p_batch_id用 IN 模式不返回结果集以外的值。如果老师要求输出参数可以加OUT p_avg DECIMAL(8,2)但课设里直接返回结果集更直观。4. 查询与统计把体测数据变成能写进报告的结论4.1 单项目排名与优秀率一条 SQL 同时算名次和达标率体测报告里最常出现的结论是“某项目全校前 10 名”和“某项目优秀率”。优秀标准因项目而异所以要用higher_better动态判断。下面这条查询按批次和项目算排名与优秀率SELECT r.item_id, i.item_name, s.student_id, s.name, r.score_value, RANK() OVER (PARTITION BY r.item_id, r.batch_id ORDER BY CASE WHEN i.higher_better 1 THEN r.score_value END DESC, CASE WHEN i.higher_better 0 THEN r.score_value END ASC) AS rk FROM score_record r JOIN student s ON s.student_id r.student_id JOIN test_item i ON i.item_id r.item_id WHERE r.batch_id 1 ORDER BY r.item_id, rk;逻辑说明RANK() OVER是窗口函数MySQL 8.0 起支持。PARTITION BY item_id, batch_id表示每个项目每个批次单独排名。排序时用两个 CASE越大越好的项目按降序越小越好的项目按升序这样 50 米跑的第一名就是用时最短的人。如果数据库版本低于 8.0窗口函数不可用得用自连接或变量模拟课设里建议直接声明使用 8.0。参数上WHERE r.batch_id 1换成变量即可复用。4.2 班级横向对比用透视思路把多项目拉成一行设计报告里如果有一张“各班各项目平均分对比表”会显得很专业。SQL 本身没有 PIVOT但可以用条件聚合模拟SELECT s.class_id, ROUND(AVG(CASE WHEN i.item_name 50米跑 THEN r.score_value END),2) AS avg_50m, ROUND(AVG(CASE WHEN i.item_name 肺活量 THEN r.score_value END),2) AS avg_vital, ROUND(AVG(CASE WHEN i.item_name 立定跳远 THEN r.score_value END),2) AS avg_jump FROM score_record r JOIN student s ON s.student_id r.student_id JOIN test_item i ON i.item_id r.item_id WHERE r.batch_id 1 GROUP BY s.class_id;逻辑说明CASE WHEN把不同项目的成绩映射到不同列AVG忽略 NULL所以每个班即使缺某个项目也不影响其他列。这种写法在数据量小的时候完全够用缺点是项目名硬编码在 SQL 里新增项目要改语句。更灵活的做法是前端拿到明细后做透视或者用动态 SQL 拼列名但课设里条件聚合最稳。参数上WHERE r.batch_id 1限定批次避免跨批次混算。4.3 趋势分析同一学生两次体测的进退步“体质健康”不只是单次成绩还要看变化。下面这条自连接查询找出同一学生同一项目在两次批次间的分差SELECT r1.student_id, s.name, i.item_name, r1.score_value AS score_prev, r2.score_value AS score_curr, ROUND(r2.score_value - r1.score_value, 2) AS diff FROM score_record r1 JOIN score_record r2 ON r1.student_id r2.student_id AND r1.item_id r2.item_id AND r1.batch_id 1 AND r2.batch_id 2 JOIN student s ON s.student_id r1.student_id JOIN test_item i ON i.item_id r1.item_id ORDER BY diff DESC;逻辑说明自连接把同一学生的两次记录拼到一行diff为正表示进步对越大越好的项目。注意这里没有考虑higher_better如果项目是 50 米跑diff 为负才是进步。严谨做法是在 SELECT 里用 CASE 根据higher_better调整符号。参数上batch_id 1和2是示例实际用变量传入。这条查询在报告里可以生成“进步之星”名单是加分项。5. 避坑与排查课设里最容易翻车的五个地方5.1 中文乱码建库时没指定字符集插入全是问号现象插入学生姓名后查询显示???或乱码。原因数据库、表、连接三层字符集不一致常见是库用latin1连接用utf8。解决建库时显式指定CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci建表继承库设置连接串加characterEncodingutf8。如果已经建错用ALTER DATABASE ... CHARACTER SET utf8mb4;和ALTER TABLE ... CONVERT TO CHARACTER SET utf8mb4;补救但已有乱码数据无法自动恢复只能重插。5.2 外键报错 1452插入成绩时学生不存在现象Cannot add or update a child row: a foreign key constraint fails。原因成绩表插入的student_id在学生表里没有对应行常见于先插成绩后插学生或学号前后有空格。解决先插学生和项目字典再插成绩用SELECT * FROM student WHERE student_id 目标学号;确认存在。如果确实需要“先成绩后学生”只能暂时禁用外键检查SET FOREIGN_KEY_CHECKS0;但课设里不推荐会掩盖数据问题。5.3 触发器死循环更新触发器里又更新同一张表现象执行 UPDATE 后数据库卡死或报Cant update table ... already used。原因在AFTER UPDATE触发器里又对同一张表执行 UPDATE形成递归。解决触发器里只写日志表不要回写原表。如果业务必须回写用BEFORE UPDATE直接修改NEW.列而不是再发一条 UPDATE。MySQL 不允许触发器操作自身表报错是保护机制别想着绕过。5.4 统计结果偏大JOIN 导致成绩行被重复计算现象班级平均分算出来比预期高很多。原因多表 JOIN 时如果学生表或项目表存在一对多关系比如一个学生有多个手机号成绩行会被放大。解决统计前先确认 JOIN 的粒度。成绩表 JOIN 学生表是一对一一个学号一行JOIN 项目表也是一对一所以安全。但如果再 JOIN 一张“学生获奖表”就会放大。正确做法是先用子查询把成绩聚合到学生粒度再 JOIN 其他表。5.5 存储过程权限不足调用时报 1370现象EXECUTE command denied to user或创建触发器时报SUPER privilege。原因课设环境常用普通账号没有CREATE ROUTINE或TRIGGER权限。解决让管理员执行GRANT CREATE ROUTINE, ALTER ROUTINE, TRIGGER ON 数据库名.* TO 账号localhost;。如果用的是学校统一数据库可能根本不给这些权限那就把触发器和存储过程写在设计报告里作为“设计说明”源码里用应用层代码替代别硬刚权限。6. 从能跑到能讲把源码、数据库和设计报告串成一条交付链课设的终点不是“我本地能跑”而是“老师照着报告能复现答辩时能讲清每个设计决策”。我一般会按这个顺序整理交付物先导出数据库结构mysqldump --no-data得到建表语句再导出少量示例数据--where限定几十行然后写一个README说明导入顺序——先建库、再建表、再插字典、最后插成绩。介绍 PPT 不要堆界面截图用三页讲清 ER 图、三页讲清关键 SQL、一页讲踩坑比二十页流水账得分高。验证方法上我习惯跑三条“冒烟查询”查一个学生的全部成绩、查一个班的平均分、查一个项目的排名。三条都出结果说明表关系、约束、统计逻辑都通了。如果某条为空先查外键数据是否插入再查 WHERE 条件是否写错。最后设计报告里的“不足与改进”别写“界面不够美观”这种虚话写“当前未做成绩等级自动换算因为等级标准随学年变化硬编码在 SQL 里会导致维护困难后续可引入等级标准表按学年配置”——这种反思才是老师想看的。血泪经验我见过太多人把时间花在调前端颜色上结果答辩时被问“你的成绩表联合唯一键是什么”直接卡住。数据库课设的分数七成在模型和 SQL三成在文档和演示。先把score_record的约束写对再把视图和存储过程跑通最后才去美化界面。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

斐波那契数列从兔子问题到1000内列表:四种解法与工程实践

斐波那契数列从兔子问题到1000内列表:四种解法与工程实践

1. 从一对兔子说起:斐波那契数列到底在描述什么很多人第一次听到“斐波那契数列”这五个字,脑子里冒出来的是一串冷冰冰的数字:1、1、2、3、5、8、13、21……然后就是无穷无尽的递推公式和编程题。但如果你真的回到这个数列被提出的原始场景&…

2026/10/9 14:05:07 阅读更多 →
计算机毕设项目4:基于springboot+uniapp自习室预约小程序(含AI智能预约+候补转正+座位AI协商)

计算机毕设项目4:基于springboot+uniapp自习室预约小程序(含AI智能预约+候补转正+座位AI协商)

所有项目已经整理完毕,后续的还在整理。更多项目,请联系我。 更多项目可以看:2026全新计算机毕设选题(小众,含创新点)-CSDN博客 所有成品和定制,均先免费部署,不需要定jin&#xff…

2026/10/9 14:04:07 阅读更多 →
高中数学集合与函数:定义域优先与分类讨论核心指南

高中数学集合与函数:定义域优先与分类讨论核心指南

1. 为什么“集合与函数”是高中数学的第一道分水岭如果你问一个刚带完高三毕业班的数学老师,高中数学哪一章最容易让学生“翻车”,十有八九会告诉你:不是导数,不是圆锥曲线,而是开学第一个月学的集合与函数。这听起来有…

2026/10/9 14:04:06 阅读更多 →

最新新闻

CAP理论与数据库分片架构:一致性、可用性与分库分表实战解析

CAP理论与数据库分片架构:一致性、可用性与分库分表实战解析

做分布式系统做了这么久,我发现一个特别有意思的现象:很多人都把CAP背得滚瓜烂熟,一问你“CAP是什么”,张口就来“一致性、可用性、分区容错性,三者不可兼得”。可真到设计一个数据库分片架构的时候,该选什…

2026/10/9 14:29:54 阅读更多 →
银行汇款单网页制作:HTML表单与CSS布局实战详解

银行汇款单网页制作:HTML表单与CSS布局实战详解

上学时做的第一个像样的网页作业,就是这份银行汇款单。当时觉得不就是画个表格、填几个输入框嘛,真动手才发现,越看着简单的页面,越考验基本功。汇款单这玩意儿信息密度高、对齐要求严格、表单控件类型多,还要考虑打印…

2026/10/9 14:29:54 阅读更多 →
MySQL root密码忘记怎么办?重置原理与多环境实操指南

MySQL root密码忘记怎么办?重置原理与多环境实操指南

半夜十二点,微信突然响了。同事发来一串带汗的表情:“生产库连不上了,root密码不对,之前管库的兄弟走了,交接文档里写的是另一个密码……”这种场景我遇到过好几次。MySQL的root密码一旦丢失,正常的登录入口…

2026/10/9 14:29:54 阅读更多 →
MySQL root密码忘记?用skip-grant-tables重置密码实操指南

MySQL root密码忘记?用skip-grant-tables重置密码实操指南

哎,MySQL 的 root 密码忘了,这种事谁遇上谁知道。平时数据库跑得好好的,某天要改个慢查询配置或者导一份数据,输错三次直接被拒,那一刻是真的慌。其实 MySQL 官方留了一条“紧急通道”——启动时跳过授权表&#xff0c…

2026/10/9 14:29:54 阅读更多 →
数据库原理复习链路:往年卷拆解、SQL作业与课设避坑指南

数据库原理复习链路:往年卷拆解、SQL作业与课设避坑指南

简介:面向天津大学「数据库应用(原理)」课程的备考者与自学者,资源包集中整理往年试卷、课程大作业与实验报告,内容覆盖SQL语言、关系数据库模型、数据完整性、事务处理、索引构建与查询优化等核心考点,并包…

2026/10/9 14:29:54 阅读更多 →
MOSS-Transcribe-Diarize Web后端架构解析:任务状态机、作业管理与 FastAPI 实现

MOSS-Transcribe-Diarize Web后端架构解析:任务状态机、作业管理与 FastAPI 实现

MOSS-Transcribe-Diarize Web后端架构解析:任务状态机、作业管理与 FastAPI 实现 【免费下载链接】MOSS-Transcribe-Diarize A 0.9B model for long-form transcription in 50 languages with speaker diarization, timestamps, and acoustic event awareness 项目…

2026/10/9 14:28:53 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →