北邮研一数据库大作业:学生成绩管理系统从选题到验收完整路径
简介这份资源是北邮研一数据库课程大作业的完整详解文档面向正在修读数据库系统课程、需要完成课程设计的研究生及高年级本科生。内容围绕学生成绩管理系统展开覆盖需求分析、数据库设计、ER图绘制、逻辑结构设计与建表程序等完整流程可帮助读者理解从需求到实现的规范化设计思路。压缩包内共1个docx文件约503KB以文字与图表形式呈现便于直接参考与整理。文档详细给出Course、Student、Sc、Teacher四张表的字段定义、主外键约束与一对多关系并包含不及格学生名单统计、无教学任务教师查询等典型功能设计以及局部与全局ER图、数据字典和建表SQL语句。目前已有606人学习下载适合需要课程设计参考、数据库建模练习或期末复习的读者借鉴其设计框架与实现细节。1. 北邮研一数据库大作业从选题到跑通一个能交差的完整路径北邮研一数据库大作业通常不是让你从零写一个数据库内核而是给定一个业务场景要求完成需求分析、E-R 建模、建库建表、增删改查、视图/存储过程/触发器最后交一份报告加可运行的 SQL 脚本。热词里高频出现的 MySQL、Navicat、学生成绩管理系统恰好就是这类作业最常见的组合。我带过几届本科和研一的数据库课设发现真正卡住大家的不是 SQL 语法而是选题太虚、表结构反复改、数据对不上、报告写不出设计取舍。这篇笔记按我实际带学生做项目的顺序把选题、建模、建库、写查询、加高级对象、排错、验收串成一条能直接照着走的路径。适合刚入学、手上只有一台笔记本、需要在两三周内交出一个像样系统的研一同学。2. 选题与需求为什么学生成绩管理系统是安全牌2.1 先判断作业到底在考什么很多同学一上来就想做“校园二手交易平台”或者“实验室设备管理”觉得新鲜。但数据库大作业的评分点集中在数据建模是否规范、约束是否完整、查询是否覆盖业务、高级对象是否用对而不是业务本身有多花哨。学生成绩管理系统之所以成为经典是因为它的实体和联系天然清晰学生、课程、教师、班级、选课、成绩一对多和多对多关系齐全正好能把主外键、唯一约束、级联、聚合查询全部练一遍。你换成别的题目如果实体关系没这么干净后面写 SQL 会一直别扭。判断标准很简单你的系统里有没有至少两个多对多关系有没有需要事务保证一致性的操作有没有需要按维度统计的报表。学生成绩管理系统里学生选课是多对多教师授课也是多对多成绩录入和修改需要事务班级平均分、课程及格率是典型报表。这三点齐了作业的技术含量就够。2.2 需求清单要落到字段级别需求分析不要写成散文。我一般让学生直接列三张清单实体清单、属性清单、业务操作清单。实体清单写清楚有哪些对象属性清单写到字段名、类型、是否可空、默认值业务操作清单写清楚谁会做什么比如“教务老师录入成绩”“学生查询个人成绩”“班主任查看班级排名”。以学生成绩管理系统为例核心实体至少包括学生、班级、课程、教师、选课记录。选课记录这张表是关键它承载学生和课程的多对多关系同时挂成绩字段。很多同学把成绩直接放在学生表或课程表里这是典型建模错误会导致一个学生只能有一门课的成绩。注意属性清单里一定要标出哪些字段需要唯一约束比如学号、课程编号、教师工号。这些约束后面建表时直接写进 DDL比在应用层判断可靠得多。2.3 从需求到 E-R 图的最小步骤E-R 图不用画得多漂亮但实体、属性、联系三要素必须齐全。我通常用 draw.io 或者纸笔先画确认三件事每个实体有没有主键每个多对多联系有没有拆成独立的关系表每个一对多联系的外键放在哪一侧。确认完再转成关系模式也就是最终的表结构。关系模式写出来大概是这个形式学生(学号, 姓名, 性别, 出生日期, 班级编号)班级(班级编号, 班级名称, 入学年份)课程(课程编号, 课程名称, 学分, 教师工号)教师(教师工号, 姓名, 职称)选课(学号, 课程编号, 成绩, 选课时间)这里选课表的主键是(学号, 课程编号)复合主键成绩允许为空表示尚未录入。这个设计决定了后面所有查询的写法所以务必在动手建表前定下来。3. 建库建表MySQL 8 下的 DDL 与约束落地3.1 环境准备与字符集选择本地跑 MySQL 8 是最省事的方案。安装完成后第一件事是确认字符集否则中文姓名和课程名会出现乱码。建库时显式指定 utf8mb4排序规则用 utf8mb4_0900_ai_ci这是 MySQL 8 的默认推荐对中文和 emoji 都友好。-- 创建数据库显式指定字符集避免中文乱码 CREATE DATABASE score_mgmt DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_0900_ai_ci; USE score_mgmt;字符集这件事看起来小但每年都有学生因为库、表、连接三层字符集不一致导致 Navicat 里看到问号。建库时定好后面建表继承库的设置连接串里也写 utf8mb4基本不会翻车。3.2 建表顺序与外键依赖建表必须按依赖顺序来先建被引用的表再建引用它们的表。班级和教师不依赖别人先建学生依赖班级课程依赖教师其次选课依赖学生和课程最后建。顺序错了会报外键约束错误。-- 班级表被学生表引用先建 CREATE TABLE class ( class_id INT PRIMARY KEY AUTO_INCREMENT, class_name VARCHAR(50) NOT NULL, enroll_year YEAR NOT NULL ) ENGINEInnoDB; -- 教师表被课程表引用 CREATE TABLE teacher ( teacher_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(30) NOT NULL, title VARCHAR(20) DEFAULT 讲师 ) ENGINEInnoDB; -- 学生表外键指向班级 CREATE TABLE student ( student_id CHAR(10) PRIMARY KEY, -- 学号固定10位 name VARCHAR(30) NOT NULL, gender ENUM(男,女) DEFAULT 男, birth_date DATE, class_id INT, CONSTRAINT fk_student_class FOREIGN KEY (class_id) REFERENCES class(class_id) ON DELETE SET NULL ) ENGINEInnoDB; -- 课程表外键指向教师 CREATE TABLE course ( course_id CHAR(8) PRIMARY KEY, course_name VARCHAR(60) NOT NULL, credit DECIMAL(3,1) NOT NULL DEFAULT 2.0, teacher_id INT, CONSTRAINT fk_course_teacher FOREIGN KEY (teacher_id) REFERENCES teacher(teacher_id) ON DELETE SET NULL ) ENGINEInnoDB; -- 选课表复合主键两个外键 CREATE TABLE enrollment ( student_id CHAR(10), course_id CHAR(8), score DECIMAL(5,2) DEFAULT NULL, -- 空表示未录入 enroll_time DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (student_id, course_id), CONSTRAINT fk_enroll_student FOREIGN KEY (student_id) REFERENCES student(student_id) ON DELETE CASCADE, CONSTRAINT fk_enroll_course FOREIGN KEY (course_id) REFERENCES course(course_id) ON DELETE CASCADE ) ENGINEInnoDB;几个参数值得说明。学号用 CHAR(10) 而不是 INT因为学号可能有前导零用整数会丢零。成绩用 DECIMAL(5,2)能表示 0 到 999.99保留两位小数比 FLOAT 精确避免 59.999 被显示成 60 的玄学问题。选课表用复合主键天然保证同一个学生不能重复选同一门课。外键的 ON DELETE 行为要按业务定学生删除后选课记录跟着删用 CASCADE班级删除后学生保留但班级置空用 SET NULL。3.3 索引与默认值的取舍主键自动带索引外键列 MySQL 也会自动建索引。除此之外经常用来查询的列可以手动加索引比如学生表的 name、选课表的 score。但索引不是越多越好每个索引都会拖慢插入速度。作业规模下加一两个关键索引就够。默认值方面热词里有人搜“mysql 设置默认值为 0”这在成绩场景要小心。成绩默认值如果设成 0未录入和考零分会混淆。我一般把成绩默认值设为 NULL用 IS NULL 判断未录入语义清晰。只有像学分这种一定有值的字段才给默认值。提示建完表后用SHOW CREATE TABLE enrollment;检查一遍确认外键和字符集都符合预期比事后出问题再回头查省事得多。4. 增删改查与高级对象把作业的技术分拿满4.1 基础 CRUD 与批量数据生成建完表先灌数据。手工插几条能验证逻辑但要跑统计查询至少需要几十个学生、几门课、上百条选课记录。我一般写一段 INSERT 批量插入或者用存储过程循环生成。手工插的话注意外键顺序先插班级、教师再插学生、课程最后插选课。-- 按依赖顺序插入基础数据 INSERT INTO class (class_name, enroll_year) VALUES (通信2101, 2021), (通信2102, 2021), (计算机2101, 2021); INSERT INTO teacher (name, title) VALUES (张老师, 教授), (李老师, 副教授), (王老师, 讲师); INSERT INTO student (student_id, name, gender, birth_date, class_id) VALUES (2021010101, 赵一, 男, 2003-05-12, 1), (2021010102, 钱二, 女, 2003-08-20, 1), (2021010103, 孙三, 男, 2003-02-01, 2); INSERT INTO course (course_id, course_name, credit, teacher_id) VALUES (CS101, 数据库原理, 3.0, 1), (CS102, 数据结构, 4.0, 2), (MA101, 高等数学, 5.0, 3); INSERT INTO enrollment (student_id, course_id, score) VALUES (2021010101, CS101, 88.5), (2021010101, CS102, 76.0), (2021010102, CS101, 92.0), (2021010103, MA101, NULL); -- 未录入插入时注意选课表的 score 允许 NULL所以最后一条表示孙三选了高数但成绩还没录。这个 NULL 在后面统计平均分时会被自动忽略符合业务预期。4.2 多表连接与聚合查询作业里最能体现水平的是统计类查询。比如查每个学生的总分和平均分、每门课的及格率、班级排名。这些都要用 JOIN 加 GROUP BY。-- 查询每个学生的总分、平均分和选课门数 SELECT s.student_id, s.name, COUNT(e.course_id) AS course_count, SUM(e.score) AS total_score, ROUND(AVG(e.score), 2) AS avg_score FROM student s LEFT JOIN enrollment e ON s.student_id e.student_id GROUP BY s.student_id, s.name ORDER BY avg_score DESC;这里用 LEFT JOIN 而不是 INNER JOIN是为了让没选课的学生也出现在结果里显示为 0 门课。如果用 INNER JOIN没选课的学生直接消失报表就不完整。AVG 会自动跳过 NULL所以未录入的成绩不影响平均分计算。ROUND 保留两位小数避免出现一长串浮点数。再比如查每门课的及格率-- 每门课的选课人数、及格人数、及格率 SELECT c.course_name, COUNT(e.student_id) AS total, SUM(CASE WHEN e.score 60 THEN 1 ELSE 0 END) AS passed, ROUND(SUM(CASE WHEN e.score 60 THEN 1 ELSE 0 END) / COUNT(e.student_id) * 100, 1) AS pass_rate FROM course c JOIN enrollment e ON c.course_id e.course_id WHERE e.score IS NOT NULL GROUP BY c.course_id, c.course_name;CASE WHEN 是行转列的常用手法把满足条件的行记 1不满足记 0再 SUM 就得到计数。WHERE 里过滤掉 NULL 成绩避免未录入的被算成不及格。4.3 视图、存储过程与触发器高级对象是拉开分差的地方。视图适合封装复杂查询存储过程适合封装业务逻辑触发器适合做自动校验或日志。三个至少各用一个。-- 视图学生成绩明细简化后续查询 CREATE VIEW v_student_score AS SELECT s.student_id, s.name AS student_name, c.course_name, c.credit, e.score FROM student s JOIN enrollment e ON s.student_id e.student_id JOIN course c ON e.course_id c.course_id; -- 存储过程录入或更新成绩带存在性检查 DELIMITER // CREATE PROCEDURE upsert_score( IN p_student CHAR(10), IN p_course CHAR(8), IN p_score DECIMAL(5,2) ) BEGIN IF p_score 0 OR p_score 100 THEN SIGNAL SQLSTATE 45000 SET MESSAGE_TEXT 成绩必须在0到100之间; END IF; INSERT INTO enrollment (student_id, course_id, score) VALUES (p_student, p_course, p_score) ON DUPLICATE KEY UPDATE score p_score; END // DELIMITER ; -- 触发器成绩更新时记录日志 CREATE TABLE score_log ( log_id INT PRIMARY KEY AUTO_INCREMENT, student_id CHAR(10), course_id CHAR(8), old_score DECIMAL(5,2), new_score DECIMAL(5,2), changed_at DATETIME DEFAULT CURRENT_TIMESTAMP ); DELIMITER // CREATE TRIGGER trg_score_update AFTER UPDATE ON enrollment FOR EACH ROW BEGIN IF OLD.score NEW.score OR (OLD.score IS NULL AND NEW.score IS NOT NULL) THEN INSERT INTO score_log (student_id, course_id, old_score, new_score) VALUES (OLD.student_id, OLD.course_id, OLD.score, NEW.score); END IF; END // DELIMITER ;存储过程里用 SIGNAL 抛出自定义错误比在应用层判断更靠近数据。ON DUPLICATE KEY UPDATE 利用主键冲突实现“有则更新无则插入”一条语句搞定。触发器里判断 OLD 和 NEW 的差异注意 NULL 的比较要用 IS NULL直接在 NULL 参与时结果未知这是很多人写触发器时的血泪坑。注意DELIMITER 只在 MySQL 命令行和部分客户端里生效Navicat 里执行存储过程时要在查询窗口单独运行或者用它的函数/过程编辑器否则会因为分号提前结束而报语法错误。5. 避坑与排查那些让作业返工的细节5.1 外键报错 1452插入顺序或数据类型不匹配现象插入选课记录时报Cannot add or update a child row: a foreign key constraint fails。原因通常是两种被引用的学生或课程还没插入或者外键列和被引用列的数据类型、字符集不一致。比如学生表 student_id 是 CHAR(10)选课表里写成了 VARCHAR(10)虽然看起来像但严格模式下可能不匹配。解决先确认被引用数据存在再用SHOW CREATE TABLE对比两边的列定义字符集和长度必须完全一致。5.2 中文乱码三层字符集没对齐现象Navicat 里中文显示成问号或乱码。原因库、表、连接三层字符集不一致。解决建库时指定 utf8mb4建表继承库设置Navicat 连接属性里把编码设为 utf8mb4连接串加?characterEncodingutf8mb4。已经建好的表可以用ALTER TABLE student CONVERT TO CHARACTER SET utf8mb4;补救但数据可能已经损坏最好重建。5.3 聚合查询结果不对JOIN 后行数膨胀现象查学生总分时发现总分比实际高很多。原因多表 JOIN 时如果有一对多关系没处理好会产生笛卡尔积式的行膨胀。比如学生 JOIN 选课 JOIN 课程如果课程表通过教师再 JOIN 一次行数会翻倍。解决先确认每个 JOIN 的连接条件唯一必要时用子查询先聚合再 JOIN或者用 DISTINCT 去重。统计类查询建议先在子查询里算好再关联。5.4 存储过程在 Navicat 里执行失败现象在查询窗口粘贴带 DELIMITER 的存储过程代码报You have an error in your SQL syntax。原因Navicat 的查询窗口不认 DELIMITER 指令它按自己的规则解析。解决用 Navicat 左侧树里的“函数”或“过程”右键新建在编辑器里只写 BEGIN 到 END 之间的内容DELIMITER 由工具处理。或者改用 MySQL 命令行客户端执行完整脚本。5.5 触发器导致更新失败或死循环现象更新成绩时报错或者更新一条记录却触发了大量日志。原因触发器里又去更新同一张表造成递归触发或者触发器逻辑里对 NULL 判断有误。解决MySQL 不允许触发器直接更新自身表需要绕道用存储过程NULL 比较一律用 IS NULL 和 IS NOT NULL不要用等号。写完触发器先用一条测试数据验证再批量操作。6. 验收与报告让评分老师一眼看到你的设计取舍6.1 用一组固定查询做回归验证交作业前我习惯准备一组固定查询每次改完表结构或数据都跑一遍确认结果符合预期。这组查询覆盖单表 CRUD、多表 JOIN、聚合统计、视图查询、存储过程调用、触发器日志检查。跑通了说明系统是活的不是一堆死 SQL。-- 回归验证清单逐条执行并核对结果 SELECT COUNT(*) FROM student; -- 学生总数 SELECT * FROM v_student_score WHERE score IS NULL; -- 未录入成绩 CALL upsert_score(2021010103, MA101, 85.0); -- 录入成绩 SELECT * FROM score_log ORDER BY changed_at DESC; -- 检查触发器日志 SELECT c.course_name, ROUND(AVG(e.score),2) AS avg_score FROM course c JOIN enrollment e ON c.course_id e.course_id GROUP BY c.course_id; -- 课程平均分这组查询同时也是报告里的“测试结果”章节素材直接截图或贴结果表比空口说“系统运行正常”有说服力。6.2 报告里必须写清楚的三件事评分老师看报告的时间有限最想看到的是你的设计决策。第一E-R 图到关系模式的转换过程特别是多对多怎么拆的为什么这么拆。第二约束和索引的选择理由比如为什么成绩用 DECIMAL 不用 FLOAT为什么选课表用复合主键。第三高级对象的业务价值视图简化了什么查询存储过程保证了什么一致性触发器记录了哪些审计信息。这三点写清楚报告的技术分基本就稳了。6.3 一个容易被忽略的加分项慢 SQL 意识作业数据量小一般不会遇到性能问题但如果你在报告里主动提一句“选课表的 student_id 和 course_id 上有索引因为按学生查成绩和按课程查名单是高频操作”老师会认为你有工程意识。热词里“慢 SQL 优化”不是白搜的哪怕只是加一个复合索引也值得在报告里说明理由。-- 为高频查询加复合索引覆盖按学生查成绩的场景 CREATE INDEX idx_enroll_student_course ON enrollment (student_id, course_id, score);这个索引让“查某学生某门课成绩”和“查某学生所有成绩”都能走索引避免全表扫描。数据量大了以后这就是慢 SQL 和快 SQL 的分界线。我自己带学生做这个作业最深的教训是别在选题上追求新奇把学生成绩管理系统做扎实比做一个半成品的花哨系统得分高得多。表结构定稿前多花半天推敲后面能省两天改 SQL 的时间。触发器写完一定用测试数据跑一遍别等到演示时才发现日志表是空的。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

校园二手交易网站毕设项目:SSM+Vue全链路实战解析

校园二手交易网站毕设项目:SSM+Vue全链路实战解析

简介:一套完整的校园二手交易网站设计与实现项目包,面向计算机相关专业毕业设计或课程设计使用者,采用 Java SSM Vue 技术栈构建,覆盖前台用户和后台管理员两类角色。系统包含商品浏览、二手发布、收藏下单、订单发货、求购信息…

2026/10/2 21:44:51 阅读更多 →
南山家常客家风味粤菜靠谱商家测评排名

南山家常客家风味粤菜靠谱商家测评排名

行业选择四大踩坑难题在深圳南山桃源街道周边找家常客家风味粤菜,很多人都踩过不少坑。 一是找不着地道口味的店:想吃正宗的手撕盐焗鸡、客家酿豆腐,跑了好几家店要么味道不够醇厚,要么用的食材不新鲜,吃不出老家的烟火…

2026/10/2 21:44:51 阅读更多 →
HoloCubic_AIO上位机架构解析:如何用Python Tkinter打造ESP32烧录与媒体转换工具

HoloCubic_AIO上位机架构解析:如何用Python Tkinter打造ESP32烧录与媒体转换工具

HoloCubic_AIO上位机架构解析:如何用Python Tkinter打造ESP32烧录与媒体转换工具 【免费下载链接】HoloCubic_AIO HoloCubic超多功能AIO固件 基于esp32-arduino的天气时钟、相册、视频播放、桌面投屏、web服务、bilibili粉丝等 项目地址: https://gitcode.com/Git…

2026/10/2 21:44:51 阅读更多 →

最新新闻

论文结构像一团乱麻?导师力荐这几个一键生成论文工具

论文结构像一团乱麻?导师力荐这几个一键生成论文工具

写论文总感觉结构混乱、逻辑不清,选题难、大纲难、初稿更难——这是很多学生的真实写照。其实,只要用对 AI 工具、走对写作流程,就能事半功倍。多位资深教授在教学中发现,合理利用智能工具能显著提升论文效率与质量,尤…

2026/10/2 22:32:48 阅读更多 →
AI工程化实战:从零搭建完整机器学习流水线的关键与坑

AI工程化实战:从零搭建完整机器学习流水线的关键与坑

1. 为什么值得从零搭建一套AI工程链路先说说我自己的经历。我做了几年后端开发,转岗到AI工程方向之后接到的第一个正经任务,不是训练某个模型,而是把别人在Notebook里跑通的算法变成一条能上线、能迭代的工程链路。当时我面前有两条路&#x…

2026/10/2 22:32:48 阅读更多 →
超越Python:六大接班语言横向对比与迁移实操路径

超越Python:六大接班语言横向对比与迁移实操路径

这两年我被问得最多的一个问题,不是“Python怎么学”,而是“Python学完/学腻了/遇到瓶颈了,下一步该学什么”。如果你用“编程语言推荐”“python入门”这些热词去搜,能看到一大堆排行榜和口水战,但真正能帮你做决定的…

2026/10/2 22:32:48 阅读更多 →
Ubuntu下AX200网卡固件下载失败?iwlwifi驱动安装与排查全指南

Ubuntu下AX200网卡固件下载失败?iwlwifi驱动安装与排查全指南

兄弟们,Ubuntu下AX200网卡固件iwlwifi-cc-46.3cfab8da.0.tgz下载不下来这事儿,我太熟悉了。尤其是刚装完系统,插上USB无线网卡或者笔记本自带AX200/AX210,发现Wi-Fi列表空空如也,然后翻教程去Intel官网手动下载固件&am…

2026/10/2 22:32:48 阅读更多 →
图书馆管理系统业务流程图、数据流程图与ER图绘制指南

图书馆管理系统业务流程图、数据流程图与ER图绘制指南

简介:一份图书馆管理系统开发设计文档,面向正在进行软件工程课程设计、数据库系统实践或毕业设计的计算机相关专业学生。文档以业务流程图、数据流图和ER图为核心,系统梳理了当前传统人工管理存在的检索慢、借还工作量大、统计难等问题&#…

2026/10/2 22:32:48 阅读更多 →
强化学习中的稀疏奖励难题:HER如何让智能体从失败中学习

强化学习中的稀疏奖励难题:HER如何让智能体从失败中学习

hindsight这个词,直译是“后见之明”,说人话就是事情做完之后回头看,才意识到当时其实应该怎么做。我第一次见到它出现在强化学习领域,是OpenAI那篇Hindsight Experience Replay论文里——这篇文章解决的问题非常朴实却很致命&…

2026/10/2 22:31:46 阅读更多 →

日新闻

从零搭建AI工程化:模型之外的完整闭环

从零搭建AI工程化:模型之外的完整闭环

先搞清楚一件事:从零开始做 AI 工程化,难的从来不是调模型、写提示词,而是把一套原型 Demo 变成长得像是“正经系统”的东西。你手里可能已经有了能跑通的代码,也可能刚读完一些概念,但真到了要把它变成可维护、可观测…

2026/10/2 0:00:20 阅读更多 →
大模型训练显存估计与混合精度训练实战指南

大模型训练显存估计与混合精度训练实战指南

1. 大模型训练显存估计与混合精度训练详解显存不够用,几乎是每个做大模型训练的人都会撞上的第一堵墙。你可能也经历过:模型代码写完了,数据管道跑通了,满心欢喜地按下训练启动脚本,结果几秒钟后终端弹出一行红字——C…

2026/10/2 0:00:20 阅读更多 →
小样本学习数据集选型指南:27个真正可用的高质量数据集

小样本学习数据集选型指南:27个真正可用的高质量数据集

1. 小样本学习的“弹药库”:为什么你总在找数据集,却总找不到真正能用的? 小样本、数据集——这两个词最近半年在我处理的200多个AI项目咨询里,出现频率排进前三。不是模型调不好,不是代码写不对,而是卡在…

2026/10/2 0:00:20 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 19:40:48 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/1 19:41:40 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/10/1 20:05:24 阅读更多 →

月新闻

我发现了一个新思路:用 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/2 10:36:31 阅读更多 →
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/2 5:26:06 阅读更多 →
黑夜航拍船只数据集训练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/2 6:09:11 阅读更多 →