Hidewnd Docs Hidewnd Docs
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
首页
  • 常用开发环境
  • 常用提示词
  • 常用Linux命令
  • 常用Git规范及命令
  • Java开发聊天机器人
  • word模板生成实现方案
  • 基于Go写一个极简的通讯demo
  • SpringBoot配置文件加密处理
  • SpringBoot优雅的抛出业务异常
  • 通用大模型适配器
  • 10分钟快速搭建个人博客
  • [学习笔记]Lua
  • [学习笔记]JVM
  • [学习笔记]设计模式
  • [部署笔记]搭建Typecho博客
  • [部署笔记]部署Qsign签名机
  • [部署笔记]安装PVE系统
  • [部署笔记]部署KingBaseV9电科金仓
  • 技艺成本
  • Rules
  • Setting
  • Skill
  • 剑三网站合集
  • 合并大区角色数据处理
  • 25PT冷龙峰教学笔记
  • 25PT太极宫教学笔记
  • 25PT弓月城教学笔记
关于
GitHub (opens new window)
  • Cursor
  • Rules

    • caching-and-distributed-lock
    • database-entity-annotations
      • 1. 表与库命名
      • 2. 字段命名与类型
      • 3. 字段注释规范
      • 4. 主键与索引设计
      • 5. 约束与一致性
      • 6. 规范小结
    • design-patterns
    • idempotency-specification
    • java-21-language-specification
    • java-clean-code-effective-java-spec
    • java-entity-vo-specification
    • java-language-specification
    • logging-specification
    • openapi-and-api-doc-spec
    • persistence-repository-specification
    • rest-api-specification
    • springboot-architecture-layering
    • springboot-config-and-profiles
    • springboot-exception-and-error-code
    • springboot-testing-specification
    • validation-specification
  • Setting

  • Skill

  • Cursor
  • Rules
hidewnd
目录

SQL 设计规范

# SQL 设计规范

# 1. 表与库命名

  • 命名风格:统一使用下划线小写风格,如 user_account、order_item
  • 语义清晰:表名表达业务含义,避免缩写不明的拼音或英文缩写
  • 库名与业务域对应:数据库名体现业务域,如 user_center、content_service

# 2. 字段命名与类型

  • 字段命名:统一使用下划线小写风格,如 user_id、created_at
  • 时间字段:建议统一采用 *_time 或 *_at 结尾,如 created_at、updated_at
  • 主键字段:优先使用自增或雪花等无业务含义的主键,如 id 或 <业务>_id
  • 布尔语义字段:使用数值或固定枚举,避免直接使用 true 或 false 字面值

# 3. 字段注释规范

  • 注释风格:直接描述字段含义,不写「关联某表」「代表存在」等描述
  • 可选项表达:有确定枚举时用括号 () 包裹,用 | 分隔,单项用 数值:含义 声明
  • 标准格式:字段说明(0:选项一|1:选项二|2:选项三)
-- 推荐写法
`status`   char(1) DEFAULT '0' COMMENT '帐号状态(0:正常|1:停用)',
`del_flag` int(1)  DEFAULT '0' COMMENT '删除标志(0:存在|1:删除)',
`sex`      char(1) DEFAULT '0' COMMENT '用户性别(0:男|1:女|2:未知)',

-- 避免写法
COMMENT '帐号状态(0正常 1停用)',
COMMENT '删除标志(0代表存在 1代表删除)',
COMMENT '用户ID,关联yt_answer_user.user_id',
1
2
3
4
5
6
7
8
9

# 4. 主键与索引设计

  • 主键设计:保证全局唯一性与无业务含义,避免业务字段直接作为主键
  • 索引命名:使用 idx_表名_字段名 或 uk_表名_字段名 形式
  • 组合索引:按照查询条件的过滤顺序设置字段顺序,避免无效组合
  • 冗余索引控制:定期检查删除完全重复或前缀重复的冗余索引

# 5. 约束与一致性

  • 非空约束:对必填业务字段设置 NOT NULL 并给出合理默认值
  • 唯一约束:业务上需要唯一性的字段通过唯一索引或唯一约束保证一致性
  • 外键约束:根据系统实际情况评估是否使用数据库外键,对高并发业务可通过应用侧保证关联一致性

# 6. 规范小结

场景 约定
表命名 使用下划线小写风格,语义清晰
字段命名 统一小写加下划线,时间与主键有统一后缀与前缀
字段注释 直接描述业务含义,可选项用 (0:xx\|1:xx) 风格
主键与索引 主键无业务含义,索引命名规范,组合索引按查询设计
约束设计 利用非空、唯一等约束保证数据一致性
caching-and-distributed-lock
design-patterns

← caching-and-distributed-lock design-patterns→

github
Theme by Vdoing | Copyright © 2024-2026 Hidewnd
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式