兼职网站数据库设计指南:ER图、数据流程图与建表SQL实操
简介面向兼职网站管理系统的数据库分析设计文档适合管理信息系统课程设计、毕业设计以及招聘类平台开发者参考。内容以ER图与数据流程图为主线梳理用户、职位、简历、申请记录等核心实体及数据流转路径覆盖项目背景、开发原因、系统目标、可行性研究、系统构成、数据库结构设计、输入输出设计与安全保密设计等环节并针对信息处理复杂、匹配针对性弱、安全保障不足等常见问题给出具体设计思路。资源为单个doc文档压缩包约491KB便于直接查看已有434人学习。文档按管理信息系统分析、设计、实施三部分组织可直接借鉴其中的数据表划分、模块功能布局和流程建模方法用于完成同类兼职平台或招聘系统的数据库方案撰写与课程设计说明书整理。1. 兼职网站数据库设计两张图决定成败ER图与数据流程图怎么用一个兼职平台的数据库设计方案最容易出现的翻车现场不是 SQL 写不出来而是文档里画了两张图开发时却照着一张模糊的表结构硬编码。某开发者给一个兼职网站做管理系统时数据流程图里漏掉了“退单”这条数据流导致后续在结算表里频繁加状态字段每次改动都要牵连报名表、职位表和结算单返工了半个多月。这个标题所说的数据库分析设计核心交付物就是 ER 图和数据流程图前者交代数据长什么样、怎么关联后者交代数据从哪里来、到哪里去。凡是涉及兼职用户、企业发单、报名录用、结算评价这类业务的管理系统在设计阶段把这两张图画扎实就能避开后续大部分改表痛苦。适合正在做课程设计、毕设或接手老平台重构数据层的开发者。2. 先画数据流程图把“谁在什么环节提交什么数据”理清的三个分层数据流程图DFD解决的是系统里数据怎么流动的问题它描述的是数据动作不是业务流程。很多开发者习惯先画业务流程图再照着业务图去建表结果经常把“发送短信通知”这种控制动作当成数据流画进图里。我一般建议先画 DFD因为每个数据流的起点和终点最后几乎都能映射成一张表的一个字段或一条记录。2.1 分层原则顶层、0层、1层的边界怎么切常见做法是分成三层。顶层图只画系统边界外部实体和系统之间一条主数据流比如“用户信息”“兼职单信息”进出系统。0层图把系统内部拆成若干主要处理功能这里才开始出现数据存储。1层图针对某个复杂处理继续细化直到每个处理都足够简单、能直接对应到程序模块。分层边界有一条实用规则如果某个处理画出来还要再解释“它内部怎么把数据拆开”就得继续往下分如果处理内部的逻辑已经能被数据库的增删改查表达清楚就可以停在这层。兼职网站管理系统里通常 0 层图就是主力1 层图只需要细化“职位审核”和“结算”这两个处理因为它们涉及多张表的写入。从这张表格就能看出一套完整 DFD 需要的四个要素画图前先把符号约定在团队里统一能省掉大量沟通成本。要素符号对应到实现外部实体矩形用户、企业端、支付网关是系统外的人或系统处理圆角矩形服务层方法、接口、后台任务数据流箭头参数的传递、接口返回值、事件消息数据存储开口矩形数据库表、缓存、文件存储2.2 兼职平台的数据流程图实例从发单、报名到结算的流转兼职网站管理系统的 0 层 DFD核心处理可以拆成这几个用户注册登录、企业发布职位、职位审核、用户浏览投递、企业筛选录用、兼职完成确认、费用结算、双方评价。每一组处理都要问两个问题输入的数据流是哪个外部实体给的输出的数据流写到哪里。以“用户浏览投递”这个处理为例输入是用户从职位列表点开详情时产生的“投递请求”输出是两条数据流一条写向“投递记录存储”一条读取“简历存储”返回给企业端做筛选。这里最容易漏的是“简历存储”因为投递动作看上去只是新建一条记录但企业端要看到完整简历实际还发生了一次读取。漏掉任何一条数据流说明在后续数据库设计里就会漏掉一个关联关系。类似地“费用结算”处理的输入是“完成确认”信号输出是结算记录写入“结算存储”同时更新“报名记录存储”里的状态字段。这一步如果不画出来开发时就容易只建一张结算表而不去修改报名表的状态最后统计报表时数据对不上。建议画完 DFD 后把每个数据存储的读写情况列一张清单读多写多的表优先考虑索引优化只写不读的表就要怀疑设计有问题。2.3 画数据流程图时容易踩的坑控制流混入、存储漏画、边界错位第一个坑是把控制流当数据流画。比如“企业审核通过职位后系统发邮件通知用户”邮件内容算数据但“发邮件”这个动作本身是控制流。如果画出来会让处理逻辑看起来比实际复杂还容易诱导开发去设计一张“通知表”平白增加工作量。处理方式是只在 DFD 里保留“通知内容数据流”把“发送”动作留给业务流程图描述。第二个坑是漏掉数据存储。有次帮一个同学看设计稿他画了“用户投递职位”到“投递记录”这条流却漏了“浏览职位”对“职位表”的读取。结果数据库设计里职位表没有足够覆盖列表页查询的索引上线后列表接口慢得离谱。检查时从每个处理反向追问一遍这个处理要读哪些数据、写哪些数据答不上来就回去补图。第三个坑是外部实体边界错位。支付网关算外部实体但“钱包余额”不是外部实体它对应系统内的数据存储。如果把钱包余额当成外部实体等于把一部分业务逻辑外包给了假设存在的外部系统违背了 DFD 建模的初衷。3. ER图设计从业务对象到实体联系的六步建模ER 图回答的是数据本身的组织方式。经验不足的开发者拿到需求后直接开建表表建到一半发现用户身份要扩展、职位和简历的关联说不清推倒重来是常事。正确路径是从第 2 章的 DFD 里把数据存储抽出来先确定实体、属性和联系再落到表结构。这一步的价值在于改实体联系的代价远小于改表结构的代价。3.1 实体识别从数据存储器反向推导核心对象兼职网站管理系统里能直接从 DFD 数据存储中识别出的核心实体大致是这些用户、企业资料、职位、简历、投递记录、结算单、评价记录、职位分类字典。其中“用户”和“企业资料”要不要拆成两张表是这个领域最值得先定下来的选型。常见做法是分两张表承载不同身份。用户表只存账号类字段包括手机号、密码、用户类型、注册时间企业资料表存公司名称、统一信用代码、行业归属、营业执照并通过外键关联用户表。这样设计的好处是个人用户和企业用户属性差异大强行塞在一张表里会导致大量列经常为空。如果做成课程设计这种拆分在答辩时也能解释清楚设计理由属于加分项。简历实体和用户实体之间是 1:1 关系一个人只有一份主简历。把简历单独建表而不是把真实姓名、期望薪资挂在用户表里是因为简历内容的变更频率远高于账号信息拆开后对用户表的更新压力更小。这里的边界判断标准是两个对象的生命周期是否一致不一致就该拆实体。3.2 联系与基数兼职领域最容易画错的 1:1、1:N、M:NER 图里最常翻车的部分是联系基数因为兼职业务里既有经典的 1:N又有必须拆中间表的 M:N。企业发布职位一个企业可以发布多个职位企业到职位是 1:N用户投递职位一个用户可以投递多个职位一个职位也可以被多个用户投递这是典型的 M:N必须通过投递记录这个联系实体来承接。很多设计稿在这里直接把职位表里加一个 user_id 外键导致一个职位只能被一个人投递业务逻辑完全走不通。联系名实体 A实体 B基数是否有属性发布企业资料职位1:N无投递用户职位M:N有投递时间、状态提交用户简历1:1无录用投递记录职位1:1有录用时间结算投递记录结算单1:1有金额、状态联系也是可以带属性的。投递记录本身除了关联用户和职位还应该有投递时间、状态、企业查看状态所以它不只是连接线而是应该被建模成一个联系实体。结算单和投递记录是 1:1一个录用并完成的投递对应一笔结算如果不控制这个基数实操中就会出现一个投递被结算两次的严重问题。3.3 用文本描述 ER 图团队协作时的共识基础ER 图绘图工具不是重点重点是团队对实体和联系的描述能对得上。常见做法是先用表格把实体、属性、主键、联系描述清楚再画图。属性命名习惯也在这时定下来比如统一全小写下划线风格用户表主键叫 user_id职位表主键叫 job_id联系属性用动作加时间如 apply_time、pay_time。命名规范不统一是后续开发里最浪费时间的隐性成本。主键选型我在这一步也一并定掉。用户表、职位表这类核心业务表用自增整数主键简历表和结算单也用自增但投递记录表如果预测量很大可以用自增主键加联合唯一索引来兜住业务约束比如用 job_id 和 user_id 组成唯一索引防止重复投递。ER 图阶段不必把索引画进去但要在属性清单里标注哪些字段将来要加唯一约束。另有一个设计取舍职位分类。分类属于典型的字典数据可以单独建模成职位分类实体职位通过 category_id 关联它。不要把分类名称直接冗余在职位表里否则改分类名时职位表全要跟着更新。这个边界在 ER 图阶段画出来比建表后再拆要省事得多。4. 从ER图到可执行的建表SQL关系模式转换与字段级参数ER 图定稿后下一步是把它翻译成关系模式再落成具体建表 SQL。这个环节考验的是对字段类型、默认值、外键策略和索引的把握。很多设计文档到这一步就只贴几张表结构截图不给建表语句导致评审时别人看不出字段取舍的逻辑。这一章直接给一套可复制的核心表定义所有语句都可以直接跑在测试库里验证设计。4.1 转换规则四条先在心里过一遍再动手实体直接变成表实体的属性变成表的列主键带下划线 id 结尾1:N 联系用外键表达外键放在 N 端。M:N 联系必须拆成独立的关联表这张表的复合主键或联合唯一索引就是联系本身的约束。1:1 联系则把外键放在任意一端通常放在从属方。按这个规则职位表要放 company_id 外键来承接企业和职位的 1:N 关系投递记录表承接用户和职位的 M:N它自己就是关联表表里同时出现 job_id 和 user_id 两个外键。简历表和用户表的 1:1 关系用简历表的主键同时作为外键关联用户表相当于简历主键等于用户主键省掉一个多余的唯一索引。4.2 核心建表 SQL用户、企业资料、职位、投递记录、结算单以下这段 SQL 覆盖了这个系统最核心的五张表全部用 MySQL 方言书写。字段名、注释和索引都按可交付标准写可以直接作为设计文档附录。-- 用户表同时承载个人用户和企业用户的登录账号 CREATE TABLE tb_user ( user_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 用户ID主键, phone VARCHAR(20) NOT NULL COMMENT 手机号登录凭证, password_hash CHAR(64) NOT NULL COMMENT 密码哈希值使用bcrypt, user_type TINYINT NOT NULL DEFAULT 0 COMMENT 用户类型0个人1企业, status TINYINT NOT NULL DEFAULT 1 COMMENT 账号状态0禁用1正常, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 注册时间, update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间, PRIMARY KEY (user_id), UNIQUE KEY uk_phone (phone) ) ENGINEInnoDB COMMENT用户表; -- 企业资料表与tb_user一对一存放企业特有属性 CREATE TABLE tb_company_profile ( company_id INT UNSIGNED NOT NULL COMMENT 企业资料ID同时作为外键关联用户表, company_name VARCHAR(100) NOT NULL COMMENT 企业全称, license_code VARCHAR(50) NOT NULL COMMENT 统一社会信用代码, industry VARCHAR(50) DEFAULT NULL COMMENT 所属行业, contact_name VARCHAR(30) DEFAULT NULL COMMENT 联系人姓名, contact_tel VARCHAR(20) DEFAULT NULL COMMENT 联系电话, PRIMARY KEY (company_id), UNIQUE KEY uk_license (license_code), CONSTRAINT fk_company_user FOREIGN KEY (company_id) REFERENCES tb_user (user_id) ) ENGINEInnoDB COMMENT企业资料表;用户表把个人和企业放在一起管理靠 user_type 区分身份好处是登录认证逻辑只需要面向一张表省去多次查询。企业资料表的主键直接引用用户表主键能确保企业资料不会脱离账号独立存在。phone 加唯一索引是为了支持手机号登录时快速命中和注册时防重复。password_hash 用固定长度的 CHAR因为哈希结果是定长字符串。status 字段用 TINYINT 而不是字符串枚举后续再加禁用原因之类的扩展字段更容易。-- 职位表企业端发布个人端浏览投递 CREATE TABLE tb_job ( job_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 职位ID主键, company_id INT UNSIGNED NOT NULL COMMENT 发布企业关联企业资料表, category_id INT UNSIGNED NOT NULL COMMENT 职位分类ID, title VARCHAR(80) NOT NULL COMMENT 职位标题, city VARCHAR(50) NOT NULL COMMENT 工作城市, salary_min DECIMAL(10,2) NOT NULL COMMENT 薪资下限单位元, salary_max DECIMAL(10,2) NOT NULL COMMENT 薪资上限单位元, description TEXT COMMENT 职位描述详情, status TINYINT NOT NULL DEFAULT 0 COMMENT 状态0待审核1招聘中2已下架, apply_count INT UNSIGNED NOT NULL DEFAULT 0 COMMENT 报名人数冗余字段, expire_time DATETIME DEFAULT NULL COMMENT 招聘截止时间, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 发布时间, PRIMARY KEY (job_id), KEY idx_company_status (company_id, status), KEY idx_city_status (city, status) ) ENGINEInnoDB COMMENT职位表; -- 投递记录表用户与职位的M:N联系承接整个报名流程 CREATE TABLE tb_apply ( apply_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 投递ID主键, job_id INT UNSIGNED NOT NULL COMMENT 职位ID, user_id INT UNSIGNED NOT NULL COMMENT 投递用户ID, resume_id INT UNSIGNED NOT NULL COMMENT 本次投递使用的简历ID, status TINYINT NOT NULL DEFAULT 0 COMMENT 状态0已投递1被查看2已录用3已拒绝4已完成, apply_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 投递时间, handle_time DATETIME DEFAULT NULL COMMENT 企业处理时间, PRIMARY KEY (apply_id), UNIQUE KEY uk_job_user (job_id, user_id), KEY idx_user_status (user_id, status) ) ENGINEInnoDB COMMENT投递记录表;职位表里专门设置了 apply_count 冗余字段这是为了职位列表页能直接展示报名人数避免每次实时 COUNT 投递记录表。冗余字段在写法上必须有业务逻辑兜底即每次投递成功时在同一事务里更新这个计数。这里需要留意的是 salary_min 和 salary_max 用 DECIMAL(10,2)精确到分一定不能用 FLOAT 或 DOUBLE否则金额对不上。job_id 和 user_id 组成了联合唯一索引这一条从数据层面杜绝了同一用户重复投递同一职位比在服务层里先查再插要可靠得多。-- 结算单表一个投递对应一笔结算 CREATE TABLE tb_settlement ( settlement_id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 结算ID主键, apply_id INT UNSIGNED NOT NULL COMMENT 关联投递记录, amount DECIMAL(10,2) NOT NULL COMMENT 结算金额单位元, status TINYINT NOT NULL DEFAULT 0 COMMENT 状态0待结算1已打款2已确认, pay_time DATETIME DEFAULT NULL COMMENT 打款时间, create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间, PRIMARY KEY (settlement_id), UNIQUE KEY uk_apply (apply_id), CONSTRAINT fk_settle_apply FOREIGN KEY (apply_id) REFERENCES tb_apply (apply_id) ) ENGINEInnoDB COMMENT结算单表;结算单表的 apply_id 加了唯一约束保证一个投递只能有一条结算记录这对应了 ER 图里的 1:1 联系。amount 同样使用 DECIMAL(10,2)代扣个税或平台服务费时可以直接基于这个字段计算不会产生浮点误差。pay_time 允许为空空就代表还没打款这个语义比用一个单独的 status 列去推断更直观。4.3 字段类型与默认值的取舍金额、状态、时间的选型对比字段类型选错是兼职系统里最隐蔽的坑。下表把这些高频字段的推荐选型一次性列清楚可以直接照抄进设计文档的字段规范部分。用途推荐类型不推荐写法原因金额DECIMAL(10,2)FLOAT, DOUBLE浮点存在二进制舍入误差做对账时对不上状态TINYINTVARCHAR整数范围可控索引更小避免字符串枚举拼写不一致时间DATETIMEVARCHAR字符串时间无法做大小比较和区间索引时区转换困难性别TINYINTCHAR(1)扩展第三方性别或保密场景更灵活描述TEXTVARCHAR(5000)大文本用 TEXT 更合语义VARCHAR 过长影响行溢出策略时间字段建议统一用 DATETIME 并在建表时指定默认值DEFAULT CURRENT_TIMESTAMP这样可以省掉应用层手动传时间的代码。注意不要用 TIMESTAMP 存跨时区业务的时间点它受 2038 年限制而且会随数据库时区变化而变对兼职这种需要统计日结单的场景非常不友好。4.4 索引设计从数据流程图页面反推高频查询路径索引不是给每张表都建上七八个而是从 DFD 里那些读取频率高的处理反推。兼职平台的高频查询集中在三个位置职位列表页、用户投递记录页、企业收到的报名列表。职位列表页的查询条件通常是城市、分类、状态加上按发布时间或薪资排序所以 tb_job 上要建idx_city_status。企业查看自己收到的报名时先定位企业再找该企业职位下的投递记录tb_apply 上建idx_user_status是为了个人端“我的投递”页面按用户查状态。这里有个常见误区是把所有可能出现在 WHERE 后面的列都建索引。新建索引时需要评估区分度比如 status 字段的值只有 0 到 4 几种单独给 status 建索引几乎没有选择性反而占用空间。正确的做法是让区分度高的字段city、user_id、job_id走在索引最前面。投递记录表上的联合索引idx_user_status就是让 user_id 先过滤出个人用户的所有投递再用 status 做范围筛选查询效率才起得来。5. 数据库设计避坑5 个让后续开发返工的建模错误这一章来自真是看过的设计稿和改过的老代码。每一条都是现象、原因、解决三层梳理建议对照自己的设计查一遍。5.1 报名人数每次实时统计导致职位列表越来越慢现象职位列表页要显示每个职位的报名人数开发阶段数据量小没感觉数据量过万后列表接口耗时超过 3 秒。原因列表查询每次都要对 tb_apply 做 GROUP BY 计数投递记录表越来越大聚合代价跟着涨。解决职位表增加 apply_count 冗余字段在用户投递成功的事务里同步加一。冗余字段虽然违背了严格的第三范式但在业务查询压力下是常见做法。要注意的是这个字段必须由事务保证一致不能指望定时任务去“对账”否则数字漂移会变成新的麻烦。5.2 结算状态字段被写出了五种含义现象结算单的 status 字段在代码里被赋予了多种组合比如“待结算”“已打款”“已确认”“已提现”“已过期”不同人写的判断逻辑互相对不上。原因设计文档没有给出状态流转规则开发只能按自己的理解填值。解决把 status 定义为有限状态机在文档里画一张状态流转表明确每个状态的前置状态和后置状态代码中只允许按表里定义的路径流转。兼职结算至少需要把关住一条线待结算只能走到已打款已打款才能变成已确认任何跳转都视为非法操作。5.3 把企业多个联系人都塞进企业资料表导致大量空列现象企业资料表里设计了联系人一、联系人二、联系人三这种冗余列实际只有少数企业填了多个。原因一开始想省掉联系人的从表把多值属性强行塞进了主表。解决联系人拆成单独的联系人表通过企业资料 ID 关联1:N 关系。这个案例的教训是当预感到一个字段可能要出现多个值时就应当考虑拆表不要图省事。等到代码写一半再拆牵涉的接口改动会成倍增长。5.4 职位分类名称直接存在职位表里造成改一门动全身现象职位分类名称“服务员”需要改成“餐饮服务”开发时发现职位表里每一行都存了分类名称只能写批量 UPDATE。原因把字典数据当业务数据冗余了。解决分类拆成职位分类表职位表里只存 category_id。这个坑在答辩和评审里常被问起正确解法是分类表单独维护职位表通过外键关联。字典类数据永远不要直接铺在业务表里。5.5 主键用业务字段导致后期无法变更现象有设计稿把手机号当用户表主键后续要支持手机号换绑时主键变动导致所有外键关联全部要跟着改。原因主键选型时没有区分标识稳定性和业务可变性。解决用户表自增整数主键手机号只作为业务字段加唯一索引。自增主键是代理键不承载任何业务语义它只负责唯一标识一行记录。业务上的唯一性需求都用 UNIQUE 约束去表达这样业务规则变化时不需要动关联关系。6. 实践验收用三类查询验证 ER 图、数据流程图与表结构是否自洽设计稿写完不是终点得先能说服自己。我习惯用三组查询做验收全过一遍再交付。第一组查字典对齐。列出一张表的字段清单对照 ER 图的实体属性逐个勾确保图上有名的属性表里都有表里多出来的字段必须能解释来源。第二组查关联完整性。把 tb_apply 和 tb_job、tb_user 做 LEFT JOIN 反向找孤儿数据任何一条投递记录查不到职位或用户说明外键设计或有漏写的删除逻辑出了问题。第三组跑业务链路。用一条模拟数据从发布职位到投递、录用、完成、结算全程走一遍 SQL每一跳都能对上 DFD 里那条数据流。-- 找到投递记录里职位已不存在的孤儿数据 SELECT apply_id FROM tb_apply a LEFT JOIN tb_job j ON a.job_id j.job_id WHERE j.job_id IS NULL;这段查询的价值在于验证外键关系在数据层面是否成立。如果表中存在大量孤儿数据说明应用层删除职位时没有同步处理关联投递记录。在这个系统里职位下架通常是软删除只会把 status 改为 2 而不是物理删除所以这道查询更多是用于排查数据库中是否存在历史脏数据而不是日常业务逻辑。还有一条血泪教训值得提设计文档里画的 DFD 哪怕少了一条数据流后续每一次状态变更都会演变成改表结构。因为缺的往往不是一张表而是一个环节的中间状态。建议交付前把 DFD 从头走一遍把“发布—投递—录用—完成—结算—评价”这条链路上每一步的数据落点都标清楚再与表结构对应上基本就不会出大问题。这套设计方法的好处是每一步都有迹可循从 DFD 推导实体从实体画 ER 图再落到建表 SQL评审时能讲清楚每个字段为什么存在。你手头的兼职网站管理系统如果需要做成能答辩、能交付、能维护的设计文档按这条路径走一遍是性价比最高的选择。画图时多花半天开发时就能省下两个星期的返工这笔账我算过很多次了。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

虚拟机网络模式原理与IP配置实战指南

虚拟机网络模式原理与IP配置实战指南

1. 项目概述:为什么虚拟机IP配置不是“配个地址”那么简单“虚拟机IP配置”这五个字,听起来像教科书里最基础的一节——不就是打开网络设置,填个192.168.x.x,点一下确定?我带过三届某高校实验室的系统实践课&#xff0…

2026/10/9 9:37:51 阅读更多 →
C语言typedef函数指针实战:3个必用场景彻底讲透

C语言typedef函数指针实战:3个必用场景彻底讲透

1. 为什么你第一次看到typedef int (*func_ptr)(int, char*)就想关掉页面?我带过不少刚学完基础语法、正准备啃《C程序设计语言》第5章的学员。几乎所有人,在翻到“函数指针”那页时,都会盯着typedef int (*cmp_func)(const void*, const voi…

2026/10/9 9:37:51 阅读更多 →
smol-course 模型评估实战:用 LightEval 跑通自动基准与领域定制评估(附 Argilla + Distilabel 端到端流水线)

smol-course 模型评估实战:用 LightEval 跑通自动基准与领域定制评估(附 Argilla + Distilabel 端到端流水线)

教程人工智能大模型NLP微调 【免费下载链接】smol-course A course on aligning smol models. 项目地址: https://gitcode.com/gh_mirrors/smo/smol-course 点击查看 免费下载 评估是语言模型开发与部署中最关键也最容易被忽视的环节:它决定了一个模型能…

2026/10/9 9:36:50 阅读更多 →

最新新闻

基于Python+MILP的风光储联合调度:电池与废弃矿井抽蓄互补优化

基于Python+MILP的风光储联合调度:电池与废弃矿井抽蓄互补优化

这两年搞新能源消纳的调度研究,有个词绕不开:互补。风电场最常见的情况是深夜大风、负荷却躺在地板上,光伏正好相反,正午出力冲顶、电网一时间吃不下。单靠任何一种电源都没法把这条曲线磨平,于是风电、光伏和储能组成…

2026/10/9 10:58:44 阅读更多 →
深度聚类开源代码库实战指南:从DEC到对比学习的工程落地

深度聚类开源代码库实战指南:从DEC到对比学习的工程落地

在无标注数据这块,很多人习惯性地打开sklearn直接跑一个KMeans,但凡是真正做过几年聚类项目的人都有体会:高维图像、文本向量、用户行为序列这类数据,传统聚类几乎每次都会翻车。原因不是聚类算法本身不行,而是输入特征…

2026/10/9 10:58:44 阅读更多 →
微网虚拟电厂多场景随机规划与CVaR风险优化调度策略

微网虚拟电厂多场景随机规划与CVaR风险优化调度策略

开场:为什么风险量化成了微网调度的硬需求做调度的人,不管是在传统电力系统还是园区级微网,现在绕不开一个词:风险。风光出力天生不稳定,负荷预测也不可能百分之百准,以前我们做确定性调度习惯了&#xff0…

2026/10/9 10:58:44 阅读更多 →
数理统计大作业实战:从假设检验到Python实现的全流程指南

数理统计大作业实战:从假设检验到Python实现的全流程指南

简介:这是一份面向数理统计课程学习者与机器学习初学者的完整大作业报告,围绕鸢尾花数据集展开多方法分析。报告以花萼与花瓣的四个属性为输入,使用马氏距离度量样本相似性,通过混合高斯模型实现聚类,借助主成分分析与…

2026/10/9 10:58:44 阅读更多 →
硅基流动+Chatbox:零成本长期运行DeepSeek-R1的本地AI工作流

硅基流动+Chatbox:零成本长期运行DeepSeek-R1的本地AI工作流

简介:本资源是一份面向初级开发者与个人AI实践者的低成本大模型应用搭建指南,聚焦如何利用硅基流动平台的DeepSeek API与开源跨平台AI助手Chatbox,构建稳定、免费且响应流畅的本地化AI应用。内容覆盖硅基流动高额度免费Token(新用…

2026/10/9 10:58:44 阅读更多 →
基于JWT/JWE的跨系统安全数据透传方案详解

基于JWT/JWE的跨系统安全数据透传方案详解

先说结论:这套“基于JWT/JWE的跨系统安全数据透传方案”,解决的是两个不同域、不同技术栈、甚至不同运维体系的服务之间,如何安全地把一段结构化数据从A端交付到B端——既保证数据在“路上”不被看、不被改,又保证接收方能够验证数…

2026/10/9 10:57:43 阅读更多 →

日新闻

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 阅读更多 →