当前位置: 首页 > 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),版本统一管理

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

相关文章:

  • 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单点登录中心开发手册
  • 湖北宜昌网络科技有限公司/seo优化网站的注意事项
  • 建设国家标准官方网站/知名的网络推广
  • 网站建设淄博佳铉网络/泰安网络推广培训
  • wordpress 显示代码/广州中小企业seo推广运营
  • 深圳做商城网站/怎么在网上推广产品
  • wap网站 开发/房产网站建设