39 lines
1.1 KiB
Markdown
39 lines
1.1 KiB
Markdown
---
|
||||
|
|
name: cross-database
|
|||
|
|
description: 数据库设计规范,命名约定/索引/迁移/ER 设计
|
|||
|
|
globs:
|
|||
|
|
- "database/**/*.php"
|
|||
|
|
- "**/*.php"
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 命名约定
|
|||
|
|
|
|||
|
|
| 对象 | 规范 | 示例 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| 数据库名 | snake_case | `madong_saas` |
|
|||
|
|
| 表名 | `{prefix}_{module}_{table}` | `system_menu`, `member_user` |
|
|||
|
|
| 字段名 | snake_case | `created_at`, `parent_id` |
|
|||
|
|
| 主键 | `bigInteger` 雪花 ID | `id` |
|
|||
|
|
| 索引 | 优先遵循所在模块既有命名;`produce` 插件当前使用 `idx_{column}` 等简短名称 | `idx_order_no`、`idx_step_id` |
|
|||
|
|
| 外键 | `{table}_{foreign}_foreign` | `menu_parent_id_foreign` |
|
|||
|
|
|
|||
|
|
## 字段类型
|
|||
|
|
|
|||
|
|
| MySQL 类型 | 用途 |
|
|||
|
|
|-----------|------|
|
|||
|
|
| bigint | 主键(雪花 ID) |
|
|||
|
|
| varchar | 字符串(长度 50-500) |
|
|||
|
|
| text | 长文本 |
|
|||
|
|
| json | JSON 数据 |
|
|||
|
|
| tinyint | 状态/枚举(0/1) |
|
|||
|
|
| timestamp | 时间戳 |
|
|||
|
|
| decimal | 金额(10,2) |
|
|||
|
|
|
|||
|
|
## 检查清单
|
|||
|
|
|
|||
|
|
- [ ] 表名是否包含模块前缀
|
|||
|
|
- [ ] 主键是否为 bigint 雪花 ID
|
|||
|
|
- [ ] 是否包含 created_at/updated_at/deleted_at
|
|||
|
|
- [ ] 索引是否覆盖查询条件
|
|||
|
|
- [ ] 字段类型是否合理
|