本文档由 g2rain-cmsdocs/development/database-conventions.md 自动同步生成。
# 数据库约定
  • MySQL 最低版本为 8.0.13,字符集使用 utf8mb4
  • CMS 数据表以 organ_id 表达组织边界;可信上下文、查询条件和写入记录必须一致。
  • 逻辑删除查询只返回有效记录,删除后唯一键是否释放必须由领域决策明确。
  • 若有效记录唯一且删除后允许重建,使用 (IF(delete_flag = 0, 0, NULL)) 函数唯一索引。
  • 文章标签关系需要数据库唯一约束作为并发去重最后防线,不能只依赖先查后写。
  • 版本字段用于乐观锁时,更新失败必须作为冲突处理,不能静默成功。
  • @IgnoreIsolation 只允许明确受信 Service 使用,并在 Service 补足组织和权限校验。
  • scripts/cms.sql 只用于空库初始化;生产变更使用可审计的增量迁移,说明历史数据、顺序、验证与回滚。