整理项目文档索引和规范说明
This commit is contained in:
@@ -99,6 +99,21 @@ server/src/main/java/<base_package>
|
||||
- 表、字段、索引和约束命名应清晰表达业务含义。
|
||||
- 业务表建议包含创建时间、更新时间、创建人、更新人、逻辑删除和版本字段。
|
||||
- 需要查询、排序、唯一性或关联的字段必须有明确索引策略。
|
||||
- 新项目建表前必须确认数据库字符集和 collation 策略,不能依赖数据库实例默认值。
|
||||
- MySQL 项目建议新建表显式使用 `ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='...'`,让字符串默认按大小写敏感保存和比较。
|
||||
- 外部 opaque id、第三方消息 ID、哈希、Token、nonce、幂等键、状态码和业务代码必须大小写敏感;否则容易出现 `X` 与 `x` 被误认为同一值的幂等或唯一键问题。
|
||||
- 如果业务需要大小写不敏感搜索,应通过查询层归一化、搜索字段、专门索引或搜索引擎实现,并在项目规范和 migration 注释中说明原因,不建议把整库或整表默认改回大小写不敏感。
|
||||
- 新建表模板:
|
||||
|
||||
```sql
|
||||
CREATE TABLE example_table (
|
||||
id BIGINT NOT NULL COMMENT '内部主键 ID',
|
||||
external_id VARCHAR(256) NULL COMMENT '外部系统 ID,按大小写敏感保存和比较',
|
||||
created_at DATETIME(6) NOT NULL COMMENT '记录创建 UTC 时间',
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='示例业务表';
|
||||
```
|
||||
|
||||
- 测试数据、真实业务数据和本地样本不得直接提交到仓库。
|
||||
|
||||
## 7. API 设计规范
|
||||
|
||||
Reference in New Issue
Block a user