SQL Server职工考勤管理信息系统课程设计:六表建库、存储过程与触发器实战
简介这份数据库课程设计文档面向计算机专业学生与数据库初学者围绕职工考勤管理信息系统的完整设计流程展开帮助读者掌握从需求分析到数据库实施的全套方法。文档共1个doc文件压缩包约316KB内容涵盖概述、需求分析、概念结构设计、逻辑结构设计、物理结构设计及数据库实施等章节具体包括功能需求、数据流图、功能模块图、局部与整体E-R图、关系模式、数据关系图、存储记录结构、索引创建、数据表与存储过程、触发器等知识点目录结构完整便于按模块查阅与参考。目前已有67人学习适合作为课程设计参考模板或数据库设计练习的对照材料读者可借此理清E-R图绘制、关系模式转换与SQL实施之间的衔接思路快速搭建符合规范的考勤管理数据库方案。1. 从一份课程设计文档说起职工考勤管理信息系统到底能跑通什么很多同学做数据库课程设计选题第一反应就是“学生管理系统”或者“图书管理系统”结果答辩时老师一听就皱眉——太烂大街了。这份《职工考勤管理信息系统》课程设计文档选题方向其实更贴近真实企业场景员工基本信息、出勤记录、出差、加班、请假、月统计六张核心表加上存储过程和触发器完整覆盖了数据库课程设计从需求分析到物理结构设计的全流程。它不是一份只讲理论的论文而是一套可以照着在 SQL Server 里跑起来的建库建表脚本加业务逻辑实现。适合正在做数据库课设的本科生、需要快速搭一个考勤数据模型原型的开发者以及想复习 SQL Server 存储过程和触发器写法的从业者。文档里给出的 E-R 图、关系模式、建表语句、索引创建、存储过程和触发器代码基本构成了一个闭环——你照着敲一遍就能得到一个能增删改查、能自动统计月考勤的数据库。下面我从这份文档的实际内容出发把怎么落地、参数怎么设、哪里容易翻车一条条拆开讲。2. 概念结构到逻辑结构六张表怎么从 E-R 图落到关系模式2.1 局部 E-R 图里的实体和联系决定了后面表怎么拆文档第 3 章画了六张局部 E-R 图分别对应员工、出勤、出差、加班、请假、月统计。很多人看 E-R 图就是走个过场直接跳到建表结果表建出来要么字段冗余要么关联关系对不上。这里的关键是先把实体和联系分清楚。员工是核心实体属性有职工编号、姓名、性别、年龄、职称。出勤、出差、加班、请假这四个都是“员工”参与的的业务事件每个事件都有自己的编号和时间属性。月统计则是一个汇总实体它的属性是出勤月统计、出差月统计、加班月统计、请假月统计本质上是对前四类事件按月做聚合。从 E-R 图到关系模式的转换规则很直接每个实体转一张表一对多联系把“一”端的主键放到“多”端做外键。文档第 4 章给出的关系模式是这样的职工职工编号姓名性别年龄职称出勤记录职工编号出勤编号上班时间下班时间缺勤记录出差记录职工编号出差编号开始时间结束时间统计天数加班信息职工编号加班编号加班开始时间加班结束时间加班时间统计请假信息职工编号请假编号请假开始时间请假结束时间请假时间统计月统计职工编号出勤月统计出差月统计加班月统计请假月统计注意出勤、出差、加班、请假这四张表的主键都是复合主键——职工编号加各自的业务编号。这个设计是合理的因为同一个员工在同一个月可以有多条出勤记录、多条出差记录业务编号单独做主键不够必须和职工编号组合才能唯一标识一条记录。月统计表则以职工编号作为主键因为每个员工每月只有一条汇总记录。2.2 物理结构设计字段类型和约束怎么定才不翻车文档第 5 章给出了每张表的字段类型和约束这部分是建表前必须敲定的。我把它整理成一张对照表方便你建表时直接参考表名字段类型约束说明职工信息表w_idCHAR(4)主键职工编号固定4位职工信息表w_nameCHAR(6)非空姓名职工信息表w_sexCHAR(2)CHECK(‘男’或‘女’)性别职工信息表w_ageINT非空年龄职工信息表w_degreeCHAR(4)非空职称出勤记录表w_idCHAR(4)复合主键职工编号出勤记录表w_numINT复合主键出勤编号出勤记录表work_timDATETIME允许空上班时间出勤记录表end_timDATETIME允许空下班时间出勤记录表work_noteDATETIME允许空缺勤记录出差记录表w_idCHAR(4)复合主键职工编号出差记录表out_numINT复合主键出差编号出差记录表out_timDATETIME允许空开始时间出差记录表back_timDATETIME允许空结束时间出差记录表out_daysINT允许空统计天数加班记录表w_idCHAR(4)复合主键职工编号加班记录表over_numINT复合主键加班编号加班记录表over_timDATETIME允许空开始时间加班记录表overend_timDATETIME允许空结束时间加班记录表over_daysINT允许空时间统计请假记录表w_idCHAR(4)复合主键职工编号请假记录表off_numINT复合主键请假编号请假记录表off_timDATETIME允许空请假开始时间请假记录表offend_timDATETIME允许空请假结束时间请假记录表off_daysINT允许空统计天数月统计表w_idCHAR(4)主键职工编号月统计表work_noteINT非空出勤月统计月统计表out_noteINT允许空出差月统计月统计表over_noteINT允许空加班月统计月统计表off_noteINT允许空请假月统计这里有几个参数选择值得展开说。职工编号用 CHAR(4) 而不是 INT是因为学号、工号这类编号经常有前导零用字符类型能保留格式。性别字段用 CHAR(2) 加 CHECK 约束比用 BIT 或 INT 更直观查询的时候不用做映射。时间字段统一用 DATETIME精度到毫秒对于考勤场景够用。统计天数字段用 INT因为请假和出差通常按整天算如果你们公司按小时请假那这个字段就得改成 DECIMAL 或者单独加一个按小时统计的字段。月统计表的 w_id 类型在文档里写的是 CHAR(6)但职工信息表里是 CHAR(4)这是一个明显的笔误。建表的时候必须统一成 CHAR(4)否则后面创建外键或者做关联查询时会报类型不匹配的错误。这种细节在课程设计文档里经常出现照着敲的时候要留个心眼。2.3 索引和约束唯一索引加在哪儿CHECK 约束怎么写文档第 5.2 节给出了一个索引创建语句CREATE INDEX M1 ON mounth_note(w_id) GO EXEC sp_helpIndex mounth_note这里创建的是一个普通索引不是唯一索引。文档正文写的是“创建唯一索引”但代码里没有加 UNIQUE 关键字。如果你确实需要唯一索引应该写成CREATE UNIQUE INDEX M1 ON mounth_note(w_id) GO不过月统计表的 w_id 已经是主键了主键默认就会创建唯一聚集索引再建一个唯一索引意义不大。如果是为了加速按职工编号查询月统计记录普通索引就够了。sp_helpIndex是 SQL Server 的系统存储过程用来查看指定表上的索引信息执行后会返回索引名称、描述、索引键列等。CHECK 约束在职工信息表里用在了性别字段上SEX CHAR(2) CONSTRAINT SEX_Chk CHECK(SEX男 OR SEX女) NOT NULL这个约束保证了性别字段只能录入“男”或“女”防止脏数据。注意 CHAR(2) 对于中文“男”和“女”来说刚好够用因为一个中文字符在 SQL Server 里占两个字节CHAR(2) 能存一个汉字。如果你用 VARCHAR(2) 也行但 CHAR 是定长对于这种固定长度的字段更合适。3. 数据库实施建库建表、存储过程和触发器的完整落地3.1 建库语句里的文件参数怎么改文档第 6.1 节给出了建库语句CREATE DATABASE worker ON ( NAME worker_data, FILENAME f:\worker.mdf, SIZE 3, FILEGROWTH 1 ) LOG ON ( NAME worker_LOG, FILENAME C:\worker_log.ldf, SIZE 1, MAXSIZE 50, FILEGROWTH 10% )这段代码创建了一个名为 worker 的数据库包含一个数据文件和一个日志文件。几个关键参数SIZE 3 表示初始大小 3MBFILEGROWTH 1 表示每次自动增长 1MB。日志文件的 MAXSIZE 50 表示日志文件最大 50MBFILEGROWTH 10% 表示按当前大小的 10% 增长。实际执行时FILENAME 里的路径必须是你机器上真实存在的目录。如果 f 盘不存在这条语句会直接报错。我一般会把路径改成 SQL Server 默认的数据目录或者提前用mkdir建好目录。另外 SIZE 的单位是 MBFILEGROWTH 如果不带单位默认也是 MB带 % 就是按百分比增长。对于课程设计这种小数据量场景初始 3MB 够用但如果后面要批量插入测试数据建议把 SIZE 调到 10MB 以上避免频繁自动增长影响性能。3.2 六张表的建表语句和字段修正文档第 6.2 节给出了六张表的建表语句我按顺序整理并标注了需要注意的地方。员工信息表CREATE TABLE worker ( W_id CHAR(4) CONSTRAINT worker_Prim PRIMARY KEY, w_name CHAR(6) NOT NULL, SEX CHAR(2) CONSTRAINT SEX_Chk CHECK(SEX男 OR SEX女) NOT NULL, AGE INT NOT NULL, w_drgee VARCHAR(4) NOT NULL )注意w_drgee这个字段名拼写有误应该是w_degree。建表时建议改过来不然后面写查询语句容易打错。另外 VARCHAR(4) 对于职称来说可能不够比如“高级工程师”是五个字VARCHAR(4) 存不下。建议改成 VARCHAR(10) 或 NVARCHAR(10)。出勤记录表CREATE TABLE work_note ( W_id CHAR(4), w_num INT, CONSTRAINT work_note_Prim PRIMARY KEY(W_id, w_num), work_tim DATETIME, end_tim DATETIME, work_note DATETIME )这里有个命名冲突表名是 work_note字段名也有一个 work_note。虽然 SQL Server 允许这样但写查询的时候容易混淆。建议把字段名改成absence_note或者work_remark。另外缺勤记录用 DATETIME 类型不太合理缺勤记录应该是文本描述比如“迟到 15 分钟”或“事假半天”用 VARCHAR(50) 更合适。出差记录表CREATE TABLE out_note ( W_id CHAR(4), out_num INT, CONSTRAINT out_note_Prim PRIMARY KEY(W_id, out_num), out_tim DATETIME, back_tim DATETIME, out_days INT )加班记录表CREATE TABLE over_note ( W_id CHAR(4), over_num INT, CONSTRAINT over_note_Prim PRIMARY KEY(W_id, over_num), over_tim DATETIME, overend_tim DATETIME, over_days INT )请假记录表CREATE TABLE off_note ( W_id CHAR(4), off_num INT, CONSTRAINT off_note_Prim PRIMARY KEY(W_id, off_num), off_tim DATETIME, offend_tim DATETIME, off_days INT )月统计表CREATE TABLE mounth_note ( w_id CHAR(6) CONSTRAINT mounth_Prim PRIMARY KEY, work_note INT NOT NULL, out_note INT, over_note INT, off_note INT )前面提过这里的 w_id 类型 CHAR(6) 和职工信息表的 CHAR(4) 不一致必须改成 CHAR(4)。另外表名mounth_note拼写有误应该是month_note。这些拼写问题在课程设计文档里很常见照着敲的时候顺手改掉不然后面写关联查询时自己都记不住哪个是哪个。3.3 存储过程插入出勤记录并自动验证文档第 6.3 节创建了一个向出勤表插入数据的存储过程CREATE PROCEDURE insert_in ( W_id CHAR(4), w_num INT, work_tim DATETIME, end_tim DATETIME, work_note DATETIME ) AS INSERT INTO work_note VALUES(W_id, w_num, work_tim, end_tim, work_note) GO EXEC insert_in W_id0001, w_num1, work_tim2010/11/1, end_tim2010/11/1, work_noteNULL GO SELECT * FROM work_note这个存储过程接收五个参数直接插入到 work_note 表。参数含义W_id 是职工编号w_num 是出勤编号work_tim 是上班时间end_tim 是下班时间work_note 是缺勤记录。执行时传入具体值然后查询全表验证插入结果。这个存储过程比较简单没有做参数校验。实际用的时候我一般会在插入前加一个判断检查该职工编号是否存在于 worker 表以及该出勤编号是否已经存在避免插入重复记录。比如CREATE PROCEDURE insert_in ( W_id CHAR(4), w_num INT, work_tim DATETIME, end_tim DATETIME, work_note DATETIME ) AS BEGIN IF NOT EXISTS (SELECT 1 FROM worker WHERE W_id W_id) BEGIN RAISERROR(职工编号不存在, 16, 1) RETURN END IF EXISTS (SELECT 1 FROM work_note WHERE W_id W_id AND w_num w_num) BEGIN RAISERROR(该出勤编号已存在, 16, 1) RETURN END INSERT INTO work_note VALUES(W_id, w_num, work_tim, end_tim, work_note) END GO这样调用方就能得到明确的错误提示而不是插入一条脏数据。3.4 触发器插入考勤记录时自动更新月统计文档第 6.4 节创建了两个触发器一个是插入出勤记录时更新月统计另一个是插入员工时初始化月统计记录。第一个触发器CREATE TRIGGER mounth_insert ON work_note FOR INSERT AS BEGIN IF UPDATE(w_id) UPDATE mounth_note SET work_note ( SELECT COUNT(work_tim) FROM work_note WHERE w_id (SELECT W_id FROM inserted) GROUP BY w_id ) WHERE w_id (SELECT W_id FROM inserted) END这个触发器在 work_note 表上监听 INSERT 操作。当插入一条出勤记录时它统计该员工在 work_note 表中的出勤次数然后更新 mounth_note 表的 work_note 字段。逻辑上没问题但有一个隐患如果 mounth_note 表中还没有该员工的记录UPDATE 语句不会报错但也不会有任何行被更新月统计就丢了。所以更稳妥的做法是先判断是否存在不存在则插入CREATE TRIGGER mounth_insert ON work_note FOR INSERT AS BEGIN DECLARE w_id CHAR(4) SELECT w_id W_id FROM inserted IF EXISTS (SELECT 1 FROM mounth_note WHERE w_id w_id) BEGIN UPDATE mounth_note SET work_note (SELECT COUNT(work_tim) FROM work_note WHERE w_id w_id) WHERE w_id w_id END ELSE BEGIN INSERT INTO mounth_note(w_id, work_note, out_note, over_note, off_note) VALUES(w_id, 1, 0, 0, 0) END END第二个触发器CREATE TRIGGER worker_insert ON worker FOR INSERT AS BEGIN DECLARE id CHAR(20) SELECT id W_id FROM inserted IF UPDATE(W_id) INSERT INTO mounth_note VALUES(id, 0, 0, 0, 0) END这个触发器在 worker 表上监听 INSERT当新增员工时自动在 mounth_note 表中插入一条初始记录各项统计值为 0。注意 id 声明为 CHAR(20)但 mounth_note 的 w_id 是 CHAR(4)这里类型不匹配实际执行时可能会截断或报错。建议改成 CHAR(4)。还有一个删除触发器CREATE TRIGGER delete_data ON worker FOR DELETE AS DELETE FROM work_note WHERE w_id (SELECT w_id FROM deleted)这个触发器实现了级联删除删除员工时自动删除该员工在 work_note 表中的所有出勤记录。但文档只写了删除出勤记录没有删除出差、加班、请假和月统计记录。如果要做完整的级联删除需要把其他几张表也加上CREATE TRIGGER delete_data ON worker FOR DELETE AS BEGIN DECLARE w_id CHAR(4) SELECT w_id w_id FROM deleted DELETE FROM work_note WHERE w_id w_id DELETE FROM out_note WHERE w_id w_id DELETE FROM over_note WHERE w_id w_id DELETE FROM off_note WHERE w_id w_id DELETE FROM mounth_note WHERE w_id w_id END另外文档还创建了一个视图CREATE VIEW mywork AS SELECT worker.W_id, w_name, SEX, AGE, w_drgee, work_note, over_note, out_note, off_note FROM worker, mounth_note WHERE worker.W_id mounth_note.w_id这个视图把员工基本信息和月统计信息关联在一起方便查询。注意这里用的是逗号连接加 WHERE 条件属于隐式内连接写成 INNER JOIN 更规范。4. 避坑与排查这份课程设计文档里最容易翻车的五个地方4.1 字段类型不一致导致外键创建失败现象执行建表语句时mounth_note 表的 w_id 定义为 CHAR(6)而 worker 表的 W_id 是 CHAR(4)后面想加外键约束时直接报错“列类型不匹配”。原因文档在编写过程中出现了笔误月统计表的 w_id 长度写成了 6但实际应该和职工信息表保持一致。解决建表前统一检查所有表中 w_id 的类型全部改成 CHAR(4)。如果表已经建好了用 ALTER TABLE 修改字段类型但要注意如果表里已有数据修改类型可能会截断数据。4.2 触发器里 SELECT 赋值多行时静默丢数据现象批量插入多条出勤记录时月统计只更新了其中一条其他员工的统计没变。原因触发器里用SELECT w_id W_id FROM inserted这种写法当 inserted 表里有多行时SQL Server 只会取其中一行的值赋给变量其他行被忽略。这是 T-SQL 触发器里非常经典的坑。解决触发器逻辑必须基于集合操作不能假设 inserted 只有一行。正确写法是直接用 INSERTED 表和目标表做 JOIN 更新CREATE TRIGGER mounth_insert ON work_note FOR INSERT AS BEGIN UPDATE mounth_note SET work_note (SELECT COUNT(*) FROM work_note wn WHERE wn.w_id mounth_note.w_id) FROM mounth_note mn INNER JOIN inserted i ON mn.w_id i.W_id END4.3 存储过程参数顺序和 VALUES 顺序对不上现象调用存储过程插入数据后查询发现上班时间和下班时间反了或者缺勤记录字段里存进了时间值。原因CREATE PROCEDURE 里定义的参数顺序是 W_id, w_num, work_tim, end_tim, work_noteINSERT INTO 的 VALUES 也按这个顺序。但如果表结构里字段顺序变了或者调用时用了不按顺序的参数传递方式就容易错位。解决存储过程里不要用INSERT INTO 表 VALUES(...)这种省略列名的写法显式写出列名INSERT INTO work_note(W_id, w_num, work_tim, end_tim, work_note) VALUES(W_id, w_num, work_tim, end_tim, work_note)这样即使表结构调整了字段顺序也不会插错。4.4 建库路径不存在导致 CREATE DATABASE 直接失败现象执行建库语句时报错“无法创建文件因为路径不存在”或“拒绝访问”。原因FILENAME 里写的f:\worker.mdf和C:\worker_log.ldf是文档作者的机器路径你的机器上不一定有 f 盘或者 C 盘根目录没有写入权限。解决把 FILENAME 改成 SQL Server 默认数据目录或者提前建好目录。查询默认目录可以用SELECT SERVERPROPERTY(InstanceDefaultDataPath) AS DataPath, SERVERPROPERTY(InstanceDefaultLogPath) AS LogPath然后把建库语句里的路径替换成查出来的目录。4.5 月统计表初始记录缺失导致 UPDATE 无效现象新增员工后没有自动在 mounth_note 表里生成初始记录后面插入出勤记录时触发器执行 UPDATE 但影响行数为 0月统计一直是空的。原因worker_insert 触发器可能因为类型不匹配id CHAR(20) vs w_id CHAR(4)而执行失败或者插入顺序不对——先插了出勤记录再插员工信息触发器执行时 mounth_note 里还没有对应记录。解决确保先插入员工信息再插入出勤记录。同时修正 worker_insert 触发器里的变量类型并在 mounth_insert 触发器里加上“不存在则插入”的逻辑双保险。5. 进阶用法用视图和查询把月统计做成可验证的报表5.1 用视图 mywork 做联查再补一个按部门汇总的查询文档里创建的 mywork 视图把员工基本信息和月统计关联在一起但缺少部门维度。如果你们的考勤系统需要按部门统计可以在 worker 表里加一个 dept 字段然后扩展视图ALTER TABLE worker ADD dept VARCHAR(20) CREATE OR ALTER VIEW mywork_dept AS SELECT w.W_id, w.w_name, w.dept, w.SEX, w.AGE, w.w_drgee, m.work_note, m.out_note, m.over_note, m.off_note FROM worker w INNER JOIN mounth_note m ON w.W_id m.w_id然后按部门汇总SELECT dept, COUNT(*) AS 人数, SUM(work_note) AS 总出勤次数, SUM(out_note) AS 总出差天数, SUM(over_note) AS 总加班天数, SUM(off_note) AS 总请假天数 FROM mywork_dept GROUP BY dept这个查询能直接输出每个部门的考勤汇总比单看月统计表直观得多。5.2 验证触发器是否真的生效三步检查法触发器这种东西写完了不验证等于没写。我一般用三步检查法第一步查触发器是否存在SELECT name, is_disabled FROM sys.triggers WHERE parent_id OBJECT_ID(work_note)如果 is_disabled 是 1说明触发器被禁用了需要ENABLE TRIGGER mounth_insert ON work_note启用。第二步插入一条测试数据观察月统计表变化INSERT INTO work_note(W_id, w_num, work_tim, end_tim, work_note) VALUES(0001, 1, 2024-01-01 09:00, 2024-01-01 18:00, NULL) SELECT * FROM mounth_note WHERE w_id 0001如果 mounth_note 里 work_note 字段从 0 变成了 1说明触发器生效了。第三步删除测试数据确认级联删除也正常DELETE FROM worker WHERE W_id 0001 SELECT * FROM work_note WHERE W_id 0001 SELECT * FROM mounth_note WHERE w_id 0001三张表都查不到记录说明删除触发器也生效了。5.3 一个我踩过的坑触发器嵌套导致死循环最后说一个血泪经验。有一次我在 work_note 表上写了插入触发器去更新 mounth_note又在 mounth_note 表上写了更新触发器去反查 work_note结果两个触发器互相触发SQL Server 直接报“最大嵌套层数超出”。后来查资料才知道SQL Server 默认允许触发器嵌套 32 层超过就报错。解决办法是在触发器里加IF TRIGGER_NESTLEVEL() 1 RETURN或者干脆避免在两张表上写互相引用的触发器。从那以后我每次写触发器之前都会先画一张触发关系图确认不会形成环再动手写代码。希望这份拆解能帮你把课程设计顺利跑通。本文还有配套的精品资源点击获取

相关新闻

MySQL学生信息管理系统数据库设计:表结构、索引与事务实战

MySQL学生信息管理系统数据库设计:表结构、索引与事务实战

简介:这份资源是一份基于MySQL的学生信息管理系统数据库课程设计报告,面向高校计算机相关专业学生及需要完成数据库课程设计的学习者,帮助读者将关系数据库理论知识转化为实际开发能力。报告以Java与MySQL结合开发为主线,涵盖JDBC…

2026/10/11 21:54:42 阅读更多 →
SQL实现三次指数平滑预测:递归CTE与窗口函数全解析

SQL实现三次指数平滑预测:递归CTE与窗口函数全解析

第一次接到“用SQL做三次指数平滑预测”的需求时,我第一反应是这怕不是在为难SQL。后来翻完资料、跑通代码才发现,这事不仅能做,而且做起来还挺顺手,只是很多人在“递归CTE”和“窗口函数”两种路线之间反复横跳,最后两…

2026/10/11 21:54:42 阅读更多 →
JavaWeb学生成绩管理系统实战部署与避坑指南

JavaWeb学生成绩管理系统实战部署与避坑指南

简介:这是一套面向JavaWeb初学者与课程设计实践者的学生成绩管理系统完整源码,基于Java语言与MySQL数据库开发,适用于高校《Java Web程序设计》《数据库应用》等课程实训或毕业设计参考。系统采用MVC架构,涵盖用户权限管理、学生/…

2026/10/11 21:53:41 阅读更多 →

最新新闻

企业级RAG不是加个向量库就完事:从文档保真到可控生成的闭环工程

企业级RAG不是加个向量库就完事:从文档保真到可控生成的闭环工程

1. 项目概述:为什么RAG不是“加个向量库”就完事了?你有没有试过把大模型直接丢进企业文档里问问题,结果它要么胡编乱造,要么答非所问,甚至把PDF第3页的表格数据和第17页的结论强行拼在一起?我带过的几个模…

2026/10/11 22:45:30 阅读更多 →
别再用聊天机器人写论文了:云智变AI教你什么叫“论证工程”

别再用聊天机器人写论文了:云智变AI教你什么叫“论证工程”

你有没有过这样的经历——把论文摘要丢给某个AI聊天工具,敲一句“帮我扩写成三千字”,几秒钟后它果然吐出一篇读起来挺像那么回事的东西。你满心欢喜发给导师,导师的回复只有一句话:“这不像论文,像一篇长微博。” 问…

2026/10/11 22:45:30 阅读更多 →
Delphi WebSocket服务端开发:从握手到帧解析的完整实战

Delphi WebSocket服务端开发:从握手到帧解析的完整实战

简介:基于Delphi编写的WebSocket服务端控件源程序包,由作者老吴整理,面向需要在Delphi项目里快速搭建WebSocket服务的开发人员。控件已实现接收和发送客户端文本消息、二进制流消息,支持Ping心跳、广播、全部断开、在线客户端列表…

2026/10/11 22:45:30 阅读更多 →
文件预览 SDK 太重了?用 Open File Viewer 的 lite 轻量入口给打包体积瘦身

文件预览 SDK 太重了?用 Open File Viewer 的 lite 轻量入口给打包体积瘦身

前端音视频 【免费下载链接】open-file-viewer A framework-agnostic embedded file viewer for vanilla JavaScript, React, Vue and Svelte. Put PDF, Office, images, media, archives, email, drawings, 3D, GIS and engineering files inside one stable container. 项目地…

2026/10/11 22:45:30 阅读更多 →
微信支付V2 Java对接实战:统一下单、回调验签与退款避坑指南

微信支付V2 Java对接实战:统一下单、回调验签与退款避坑指南

简介:微信支付V2 Java服务端示例代码包,面向有Java基础的支付接入者,聚焦商家与开发者对接微信官方支付接口的核心流程,覆盖统一下单、生成预付单、支付结果回调、订单查询与退款等常见环节。代码包共23个文件:17个Jav…

2026/10/11 22:45:30 阅读更多 →
6GB显存跑35B代码模型:MTP加速与分层卸载实战指南

6GB显存跑35B代码模型:MTP加速与分层卸载实战指南

1. 为什么6GB显存能跑35B参数模型?先破除三个常见误解很多人看到“Tiel-Coder-35B-A3B”这个名称,第一反应是:35B参数?那至少得24GB显存起步,6GB连模型权重都加载不进去——这想法很合理,但恰恰踩进了当前多…

2026/10/11 22:44:30 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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 阅读更多 →