北邮数据库实验:在线考试系统模式设计与Power Designer实战
简介这份文档是北邮数据库实验四「数据库模式的设计」的完整实验报告面向正在学习数据库课程、需要完成模式设计实验的高校学生。内容围绕在线考试系统展开覆盖需求分析、E-R图构建、逻辑模式与物理模式转换以及在DB2中创建表和视图的全过程适合作为课程实验参考与设计思路梳理。资源包共1个doc文件约1.56MB为Word格式的实验报告文档便于直接查阅与对照。目前已有126人学习下载。报告详细列出了用户、试题库、知识点、试卷、考试管理等实体的属性与关系并给出概念模型、物理模型及考试信息、在线试卷两个视图的创建思路还涉及Power Designer建模与SQL脚本生成等关键环节能帮助读者理解数据库设计的完整流程掌握E-R图到物理模型的转换方法并熟悉视图与数据完整性的实际应用。1. 从一份北邮数据库实验报告说起在线考试系统的模式设计到底在练什么如果你手头正躺着一份《北邮数据库实验四-数据库模式的设计.doc》大概率你面对的不是“看不懂理论”而是“知道要画 E-R 图、要建表建视图但真打开 Power Designer 就不知道第一步点哪里”。这份实验报告的核心是围绕一个在线考试系统把需求分析、E-R 图、概念模型、物理模型、SQL 脚本、DB2 建表建视图串成一条完整链路。它适合正在做数据库课程设计的学生也适合想借一个真实业务场景把 Power Designer 和 SQL 建表重新走一遍的从业者。说白了它练的不是背概念而是把“教师出题、学生考试、系统判分”这套业务翻译成数据库能落地的表和视图。2. 在线考试系统的实体与关系先把需求拆成五张表2.1 从业务描述里抠出实体和属性实验给的需求信息很长但真正要落库的实体其实就五个用户、试题库、知识点、试卷、考试管理。很多同学一上来就急着开 Power Designer结果画到一半发现字段对不上又回头改需求来回折腾。我的习惯是先在纸上把每个实体的属性列清楚再进工具。用户实体承担登录和角色区分。一个用户有且只有一种角色所以角色字段放在用户表里就够了不需要单独拆角色表。字段包括用户 ID、用户名、角色、密码。这里有个容易忽略的点用户 ID 是主键角色只区分教师和学生两种值用字符或小整数都行但别为了“规范”硬拆成角色表实验阶段没必要。试题库实体是在线考试系统的核心。题目代码是主键题目内容、分数、选项、正确答案、知识点代码都是必备属性。因为试题全是单项选择选项可以存成一个字符串也可以拆成 A/B/C/D 四列实验报告里给的是一列选项那就按一列走。正确答案存选项标识即可。知识点代码是外键指向知识点表。知识点实体相对独立。知识点代码是主键知识点内容和知识点学科是描述属性。需求里明确说“课程的知识点是确定的可以扩展”这意味着知识点表是基础数据表试题通过外键引用它而不是把知识点内容冗余进试题表。试卷实体稍微特殊。试卷代码是主键试卷名称是描述题目代码是外键。但需求里有一句关键约束“一样知识点的试题只能在一试卷中出现一次”。这句话翻译成数据库语言就是试卷和试题之间虽然是一对多但同一试卷内不能出现相同知识点的题目。这个约束在纯表结构里不好直接表达通常靠应用层或存储过程保证实验阶段先在建表时把外键建好心里要清楚这个业务规则。考试管理实体把试卷、教师、学生、成绩串起来。考试名称、考试代码、考试时间、学生成绩、用户 ID 是主要字段。学生成绩可空因为考试还没结束时成绩不存在。用户 ID 是外键指向用户表。把这五个实体列成一张对照表进 Power Designer 之前先核对一遍能省掉大量返工。实体主键外键关键属性用户UserID无UserName、Role、Password知识点PointID无Pcontent、Psubject试题库ItemIDPointIDIcontent、Iscore、Ioption、Ianswer试卷PaperIDItemIDPapernName考试管理EIDUserIDEname、Etime、Egrade2.2 实体之间的关系怎么定实体列完接下来是关系。在线考试系统里有几条关系必须理清否则 E-R 图会画歪。用户和考试管理是一对多。一个教师可以安排多场考试一个学生可以参加多场考试所以用户表的主键在考试管理表里作为外键出现。这里要注意教师和学生都是用户考试管理表里的 UserID 到底指向教师还是学生需求里没有拆得很细。常见做法是考试管理表里同时保留教师 ID 和学生 ID 两个外键或者用角色字段区分。实验报告里只给了一个 UserID那就按一个外键处理但在设计说明里要写清楚这个字段的业务含义。知识点和试题库是一对多。一个知识点可以对应多道试题一道试题只考察一个知识点。所以知识点表的主键 PointID 在试题库表里作为外键。试题库和试卷是一对多。一道试题可以出现在多张试卷里一张试卷包含多道试题。试卷表里的 ItemID 是外键指向试题库。但前面提到的“同一知识点试题不能在同一试卷重复”这个约束在 E-R 图层面表达不出来需要在物理模型或应用逻辑里补。试卷和考试管理是一对多。一张试卷可以用于多场考试一场考试使用一张试卷。考试管理表里应该有 PaperID 作为外键但实验报告里考试管理表的字段列表没有明确列出 PaperID只列了考试名称、考试代码、考试时间、学生成绩、用户 ID。这是一个需要留意的地方如果考试管理表不关联试卷那“教师指定某次考试使用的试卷”这个需求就落不了地。稳妥的做法是在考试管理表里补一个 PaperID 外键或者在实验分析里说明这个字段的缺失。关系理清后E-R 图的骨架就出来了。五个实体四条主要关系画的时候用矩形表示实体椭圆表示属性菱形表示关系连线标注基数。Power Designer 里对应的操作是新建 Conceptual Data Model然后从工具面板拖实体和关系。3. Power Designer 从概念模型到物理模型转换步骤与参数设置3.1 新建概念模型并录入实体打开 Power DesignerFile → New Model → Conceptual Data Model。模型建好后工具面板里会有 Entity、Relationship、Inheritance 等图标。双击空白处或点 Entity 图标再点画布就能创建一个实体。创建实体后双击实体打开属性窗口。General 标签页填 Name 和 CodeCode 是物理模型里的表名建议用英文比如 User、KnowledgePoint、ItemBank、Paper、ExamManagement。Attributes 标签页里逐条加属性每条属性填 Name、Code、Data Type。Data Type 可以先选 Variable characters 或 Integer具体长度到物理模型再调。这里有个血泪经验概念模型阶段不要把数据类型卡得太死。很多同学在概念模型里就把 varchar 长度写成 20结果到物理模型发现密码字段不够用又回头改。概念模型关注的是实体和属性本身类型和长度是物理模型的事。外键在概念模型里通过 Relationship 表达不需要手动加外键属性。比如知识点和试题库是一对多就从知识点拖一条 Relationship 到试题库Power Designer 会自动在试题库实体里生成一个指向知识点主键的外键属性。如果手动加外键属性转换到物理模型时会出现重复字段。3.2 概念模型转物理模型的关键选项概念模型画完Tools → Generate Physical Data Model。弹窗里有几个关键选项DBMS 选 IBM DB2 v8.1因为实验环境就是这个版本。如果选错 DBMS生成的 SQL 语法会有差异比如自增列、数据类型名称都不一样。Name 和 Code 的转换规则要注意。概念模型里的实体 Code 会直接变成物理模型的表名属性 Code 变成列名。如果概念模型里用了中文 Code物理模型里也会是中文DB2 虽然支持但后续写 SQL 容易出问题。建议概念模型阶段就用英文 Code。Generate 按钮点下去后Power Designer 会新建一个 Physical Data Model里面是表、列、主键、外键的完整结构。这时候要逐张表检查主键有没有丢外键有没有重复数据类型合不合理。3.3 物理模型里补视图和约束物理模型里可以建视图。实验要求建两个视图考试信息视图和在线试卷视图。考试信息视图面向学生提供历年的考试时间、科目、成绩。这个视图需要关联考试管理表、试卷表、试题库表、知识点表。因为成绩在考试管理表里科目信息在知识点表里试卷名称在试卷表里所以视图的 SQL 大致是CREATE VIEW ExamInformation AS SELECT e.EID, e.Ename, e.Etime, e.Egrade, p.PapernName, k.Psubject FROM ExamManagement e JOIN Paper p ON e.PaperID p.PaperID JOIN ItemBank i ON p.ItemID i.ItemID JOIN KnowledgePoint k ON i.PointID k.PointID;这段 SQL 的逻辑是从考试管理表出发通过 PaperID 关联试卷表拿到试卷名称再通过 ItemID 关联试题库表最后通过 PointID 关联知识点表拿到学科信息。参数上要注意如果考试管理表里没有 PaperID 外键这个视图就建不起来所以前面提到的补外键这一步不能省。在线试卷视图面向考试中的学生提供当前试卷的题目内容、选项、分值。这个视图主要关联试卷表和试题库表CREATE VIEW RealPaper AS SELECT p.PaperID, p.PapernName, i.ItemID, i.Icontent, i.Ioption, i.Iscore FROM Paper p JOIN ItemBank i ON p.ItemID i.ItemID;这个视图的过滤条件通常由应用层传入比如 WHERE PaperID ?视图本身只负责把试卷和题目拼起来。如果要在视图里直接限制某张试卷可以把条件写死但那样视图就失去通用性了。物理模型里还可以设置主键、外键、非空约束、默认值。比如学生成绩可空就在 Egrade 列上不勾 Not Null。用户密码可以设默认值但实验阶段没必要。4. 导出 SQL 并在 DB2 中建表建视图执行顺序与常见报错4.1 从物理模型生成 SQL 脚本物理模型检查无误后Database → Generate Database。弹窗里选 Directory 和 File name生成 .sql 文件。Options 标签页里可以勾选 Generate create table、Generate create view、Generate foreign keys 等。实验要求生成表和视图所以这两项都要勾。生成的 SQL 文件里表的创建顺序很关键。Power Designer 通常会按依赖关系排序先建被引用的表再建引用表。比如知识点表先建试题库表后建因为试题库有外键指向知识点。如果顺序反了DB2 执行时会报外键约束错误。4.2 在 DB2 命令行执行脚本DB2 v8.1 的命令行工具是 db2cmd。打开后先连接数据库db2 connect to SAMPLE user db2admin using passwordSAMPLE 是数据库名db2admin 是用户名password 换成实际密码。连接成功后执行 SQL 脚本db2 -tvf D:\exam_system.sql-t 表示语句以分号结尾-v 表示回显执行的语句-f 指定文件路径。执行过程中如果某条语句报错命令行会停下来并显示错误码。常见的错误有SQL0204N对象不存在。通常是表创建顺序问题或者外键引用的表还没建。SQL0601N对象已存在。说明之前执行过一部分表已经建了。解决方法是先执行 DROP TABLE 或 DROP VIEW或者换一个干净的数据库。SQL0530N外键约束冲突。插入数据时引用了不存在的父表记录建表阶段一般不会遇到除非脚本里带了 INSERT 语句。4.3 验证表和视图是否建成功脚本执行完后用 DB2 命令查看SELECT TABNAME, TYPE FROM SYSCAT.TABLES WHERE TABSCHEMA DB2ADMIN;这条 SQL 从系统目录表 SYSCAT.TABLES 里查当前模式下所有表和视图。TYPE 列是 T 表示表V 表示视图。如果五个表和两个视图都在列表里说明建成功了。再查一下外键SELECT CONSTNAME, TABNAME, REFTABNAME FROM SYSCAT.REFERENCES WHERE TABSCHEMA DB2ADMIN;这条 SQL 查的是外键约束CONSTNAME 是约束名TABNAME 是子表REFTABNAME 是父表。确认试题库表指向知识点表、试卷表指向试题库表、考试管理表指向用户表的外键都在。视图的验证可以直接查SELECT * FROM DB2ADMIN.ExamInformation; SELECT * FROM DB2ADMIN.RealPaper;如果视图定义里有关联了不存在的字段这两条查询会直接报错比看建表语句快得多。5. 避坑与排查这份实验报告里最容易翻车的五个地方5.1 考试管理表缺 PaperID 导致视图建不起来现象生成考试信息视图时SQL 报错说 PaperID 列不存在。原因实验报告里考试管理表的字段列表没有明确列出 PaperID但视图需要关联试卷表。解决在物理模型里给考试管理表补一个 PaperID 外键指向试卷表的主键。或者在概念模型阶段就把试卷和考试管理的关系画上让 Power Designer 自动生成外键。5.2 概念模型里手动加外键导致物理模型重复列现象转换到物理模型后试题库表里出现两个 PointID 列一个来自手动添加一个来自 Relationship。原因概念模型里既画了 Relationship又手动加了外键属性。解决概念模型里只画 Relationship不手动加外键属性。如果已经加了删掉手动那个重新生成物理模型。5.3 DB2 脚本执行到一半报对象已存在现象执行 SQL 脚本时前面几张表建成功后面报 SQL0601N。原因之前执行过部分脚本表已经存在。解决在脚本开头加 DROP TABLE IF EXISTS 语句或者先手动删除所有表和视图。DB2 v8.1 不支持 DROP TABLE IF EXISTS需要先查 SYSCAT.TABLES 确认存在再删。5.4 视图查询报数据类型不匹配现象查 ExamInformation 视图时报 SQL0401N 数据类型不匹配。原因视图里 JOIN 的字段类型不一致比如一个表里 PointID 是 INTEGER另一个表里是 VARCHAR。解决在物理模型里统一关联字段的数据类型。Power Designer 生成物理模型时如果概念模型里属性类型不一致物理模型里也会不一致。回到概念模型改或者直接在物理模型里改列类型。5.5 生成的 SQL 在 DB2 里跑不通但语法看着没问题现象SQL 脚本在别的数据库能跑在 DB2 v8.1 报错。原因DB2 v8.1 对某些语法支持有限比如自增列、分页查询、字符串拼接函数都和 MySQL 不一样。解决生成物理模型时 DBMS 一定要选 IBM DB2 v8.1不要选通用 ODBC 或 MySQL。如果已经生成错了改 DBMS 重新生成。6. 进阶技巧用 Power Designer 反向工程验证建表结果实验做完表和视图都建好了但怎么确认物理模型和数据库里的实际结构完全一致我一般会用 Power Designer 的反向工程功能从 DB2 里把表结构导回来和原来的物理模型对比。这一步能抓出很多手工改脚本时留下的不一致。操作路径是 File → Reverse Engineer → Database。弹窗里选 DBMS 为 IBM DB2 v8.1然后配置连接。DB2 的连接需要指定数据库名、用户名、密码以及 ODBC 数据源。如果本机没配 ODBC可以在 Windows 的 ODBC 数据源管理器里新建一个 System DSN驱动选 IBM DB2 ODBC DRIVER填上数据库别名。连接成功后Power Designer 会列出所有表和视图勾选需要的对象点 OK。反向工程生成的物理模型会出现在新的 Diagram 里。这时候把反向生成的模型和原来的物理模型并排看重点对比三处列的数据类型和长度、主外键约束、视图定义。如果发现不一致比如数据库里某列是 VARCHAR(50)物理模型里是 VARCHAR(30)说明生成 SQL 后有人手动改过脚本。这种不一致在后续开发里会埋雷比如应用层按 30 长度校验数据库却允许 50数据截断或报错都可能在线上才暴露。反向工程还有一个用处当实验报告里的 SQL 脚本丢失或损坏时可以直接从数据库反向生成不用重新画 E-R 图。我带的几个做课程设计的学生最后交报告前都会走一遍反向工程确认数据库里的表和视图跟文档里写的一致。从那以后我每次做完数据库实验都强制走一遍反向工程再交省得答辩时被问“你这个视图到底建没建”答不上来。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

GaussDB工作级认证备考:拆解建表、执行计划与迁移避坑实战

GaussDB工作级认证备考:拆解建表、执行计划与迁移避坑实战

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

2026/10/12 2:58:42 阅读更多 →
V8引擎性能优化:从AST到JIT再到去优化的完整机制

V8引擎性能优化:从AST到JIT再到去优化的完整机制

写过几年 JavaScript 的人,心里多半都有过这个疑问:明明这是一门“跑在浏览器里的脚本语言”,甚至当年还被不少人当成玩具语言,为什么 V8 能把 JS 压榨到接近原生程序的性能?而且不光是快,它启动还得快、内…

2026/10/12 2:58:42 阅读更多 →
2亿5G消息平台项目流标:招标门槛、技术架构与交付能力博弈

2亿5G消息平台项目流标:招标门槛、技术架构与交付能力博弈

前阵子通信圈里都在传一个消息:某头部基础电信运营商的5G消息平台项目,预算接近2亿元,第一次公开招标竟然流标了。放在前几年,这种量级的项目基本是“定好剧本再走流程”,谁中标往往在开标前就有眉目。现在连2亿的大单…

2026/10/12 2:58:42 阅读更多 →

最新新闻

documentation.js Node API 完全指南:用 lint、build 与 formats 在 JavaScript 代码中生成文档

documentation.js Node API 完全指南:用 lint、build 与 formats 在 JavaScript 代码中生成文档

文档CLI 【免费下载链接】documentation :book: documentation for modern JavaScript 项目地址: https://gitcode.com/gh_mirrors/do/documentation 点击查看 免费下载 导读:documentation.js 不仅提供 documentation 命令行工具,还暴露了一…

2026/10/12 3:45:15 阅读更多 →
【微信小程序逆向】See Wxapkg 微信小程序反编译工具

【微信小程序逆向】See Wxapkg 微信小程序反编译工具

免责声明:本文所涉及的技术、工具及方法仅限用于合法授权的学习、研究目的。使用者应知悉并同意,任何滥用行为所引发的一切后果均由其自行承担,本公众号概不负责。介绍:See Wxapkg 是一个极简实用的微信小程序反编译工具&#xff…

2026/10/12 3:45:15 阅读更多 →
前端逆向神器|AI_JS_DEBUGGER:自动 JS 调试 + 登录处加解密分析,一键生成报告与脚本

前端逆向神器|AI_JS_DEBUGGER:自动 JS 调试 + 登录处加解密分析,一键生成报告与脚本

免责声明:本文所涉及的技术、工具及方法仅限用于合法授权的学习、研究目的。使用者应知悉并同意,任何滥用行为所引发的一切后果均由其自行承担,本公众号概不负责。介绍:还在为前端 JS 逆向、加解密算法分析头疼?手动断…

2026/10/12 3:45:15 阅读更多 →
【xilem0.4基础语法学与练】第54课 state_machine 官方示例代码深度解析

【xilem0.4基础语法学与练】第54课 state_machine 官方示例代码深度解析

前言 源码来源:xilem/examples/state_machine.rs 适配版本:Xilem 0.4 / Masonry 0.4 一、完整源码// Copyright 2024 the Xilem Authors // SPDX-License-Identifier: Apache-2.0//! A state machine to detect whether the button was pressed an even …

2026/10/12 3:45:15 阅读更多 →
Godot 4.6 IterateIK3D 完全指南:基于小旋转迭代的 IK 求解基类

Godot 4.6 IterateIK3D 完全指南:基于小旋转迭代的 IK 求解基类

文档教程游戏开发 【免费下载链接】godot-docs Godot Engine official documentation 项目地址: https://gitcode.com/GitHub_Trending/go/godot-docs 点击查看 免费下载 IterateIK3D 是 Godot 4.6 新增 IK(逆向运动学)体系中所有"迭代…

2026/10/12 3:45:15 阅读更多 →
多智能体协作流式输出归因(Member-Attributed Streaming):让 leader 的 chunk 流携带每个团队成员的身份与角色

多智能体协作流式输出归因(Member-Attributed Streaming):让 leader 的 chunk 流携带每个团队成员的身份与角色

人工智能AI AgentAgent 框架大模型工具调用RAG提示工程强化学习 【免费下载链接】agent-core openJiuwen agent-core可提供AI Agent开发、运行、调优与演进相关的全套SDK能力 项目地址: https://gitcode.com/openJiuwen/agent-core 点击查看 免费下载 导读 在 ope…

2026/10/12 3:44:14 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →