当前位置: 首页 > news >正文

存储过程开发规范

存储过程开发规范

一、总体原则

  1. 清晰分工:业务复杂时,采用“主存储过程 + 子存储过程”的模式拆解流程。

  2. 职责单一:每个存储过程只处理一类业务职责,避免多种职责混杂。

  3. 易于测试与调试:每个存储过程应具备可测试性和可追踪性,避免隐式逻辑。

  4. 性能优先:注意索引命中、批量处理、事务控制,减少资源占用。

  5. 安全规范:避免SQL注入、避免动态SQL拼接(除非必要),遵守权限最小化原则。


二、主/子存储过程设计规范

1. 命名规范
  • 主存储过程:sp_<模块名>_<功能名>_main

  • 子存储过程:sp_<模块名>_<功能名>_sub_<子功能名>

  • 示例:sp_order_create_main, sp_order_create_sub_discount

2. 主存储过程职责
  • 控制业务流程主线

  • 调用多个子存储过程完成各子任务

  • 处理事务边界(启动/提交/回滚)

  • 统一输出结果、错误信息、日志等

3. 子存储过程职责
  • 处理特定功能(如价格计算、库存扣减等)

  • 不得包含SELECT输出或RETURN结果集

  • 使用 OUT 参数或中间表传递结果

  • 不允许打印日志或暴露中间状态


三、输入输出规范

1. 输入参数
  • 明确业务参数,定义清晰

  • 参数名统一小写、蛇形命名(如:user_id, order_code

2. 输出规范
  • 主存储过程通过 OUT 参数或返回表结构统一输出

  • 所有错误通过约定格式的错误码 + 错误消息输出(建议建立统一错误码系统)


四、事务控制规范

  • 仅主存储过程可控制事务(BEGIN TRANSACTION / COMMIT / ROLLBACK

  • 子存储过程必须透明执行,不得启动或提交事务

  • 异常通过 RETURN + OUT 参数返回给主过程决定是否回滚


五、日志与审计规范

  • 日志记录必须集中在主过程完成

  • 子过程不允许写日志(防止碎片化记录和事务污染)

  • 建议设计专门日志表,记录调用参数、结果、耗时、调用链信息


六、异常处理规范

  • 子过程出现异常应设法捕获并通过参数反馈

  • 主过程统一处理异常、决定回滚

  • 所有异常必须落日志,便于排查


七、代码规范建议

  • 不允许使用 SELECT *,应显式列出字段

  • 多行 SQL 使用缩进和注释规范块

  • 所有表字段必须有注释,方便理解和维护

  • 禁止直接使用临时表名,应加前缀区分来源(如 tmp_, bak_


八、版本管理建议

  • 所有存储过程应存于代码仓库(如Git),版本统一管理

  • 每次修改必须有变更记录,说明用途、时间、开发者

http://www.dtcms.com/a/137709.html

相关文章:

  • Biu懂AI:本地部署大模型
  • 数字时代的AI与大数据:用高级AI开发技术革新大数据管理
  • Java实现Redis
  • [特殊字符] PostgreSQL MCP 开发指南
  • ruoyi中如何使用Public来存储静态资源
  • 全国青少年信息素养大赛 C++算法创意实践挑战赛初赛 集训模拟试卷《四》及详细答案解析
  • 03.Python代码NumPy-通过numPy来创建不同数组
  • 【Qt】Qt 按钮控件详解,PushButton,RadioButton,CheckBox,ToolButton
  • 韩金明董事长受邀出席“个人经济体高质量发展暨私域直播行业合规”调研活动
  • 长亭红队技术面试题
  • springboot中的事务失效(自调用)
  • 基于YOLO11的跌倒检测报警系统
  • 【Linux】su、su-、sudo、sudo -i、sudo su - 命令有什么区别?分别适用什么场景?
  • 儿童内侧颞叶癫痫伴海马硬化的体素形态学分析和机器学习分类
  • Vue —— 实用的工具函数
  • Bp靶场 - Jwt
  • OceanBases数据库单机社区版保姆级安装
  • CNN:卷积到底做了什么?
  • 解决ubuntu安装软件时候deb文件的闪退问题
  • cas 5.3单点登录中心开发手册
  • 深度学习Y5周:yolo.py文件解读
  • LeetCode每日一题4.16
  • 使用CubeMX新建EXTI外部中断工程——使用回调函数
  • 理解 iptables 的表与链
  • Maven 多仓库与镜像配置全攻略:从原理到企业级实践
  • Androidjetpack之viewmodel的原理分析
  • 2025年最新Web安全(面试题)
  • 网络服务之DHCP
  • 新加坡太白私募:金融创新与稳健发展的典范
  • 探索亮数据Web Unlocker API:让谷歌学术网页科研数据 “触手可及”