20260910173853

This commit is contained in:
oneao committed 2026-09-10 17:38:53 +08:00
1 parent 19267be58d
commit 3838ed74b1
2 files changed
+752

No files matched your search

@@ -1,3 +1,58 @@
**本系统以 SQL 为核心驱动。设计时应优先保证查询和数据处理的灵活性,并在各模块预留 SQL 扩展能力,支持传入 SQL、动态拼接查询条件、组合查询及自定义数据处理逻辑,以便通过 SQL 快速适配和解决复杂业务场景。**
# 数据表规范
本规范用于指导 AI 设计、新增和调整数据库表结构。除非已有表结构或业务要求明确指定,否则应优先遵循以下约定。
1. **表名规范**
- 统一使用小写 `snake_case` 命名,单词之间使用下划线分隔。
- 系统配置、元数据和权限相关表使用 `s_` 前缀,例如 `s_module`、`s_field`。
- 业务数据表使用 `b_` 前缀或明确的业务域前缀,例如 `b_user`、`cw_fee`。
- 表名应表达稳定的业务含义,避免使用页面名称、路由名称或临时功能名称作为表名。
2. **表职责规范**
- 一张表应围绕一个明确的业务对象、配置对象或关系对象设计。
- 系统表用于保存系统配置、元数据、权限和运行记录;业务表用于保存具体业务数据;关系表用于表达对象之间的关联关系。
- 不要为了适配单个页面重复创建业务表;页面差异优先通过模块配置、字段布局和 SQL 组合实现。
3. **主键和关联字段规范**
- 每张表必须定义稳定、明确的主键。业务对象优先使用 `b_id` 作为业务编码主键;关系表可根据业务关系使用联合主键。
- 表之间的关联字段统一使用 `<对象>_id` 或已有的 `b_module_id` 等明确命名,不使用无法判断来源的通用字段名。
- 主键和关联字段的数据类型、长度必须保持一致。
4. **字段命名规范**
- 字段统一使用小写 `snake_case` 命名。
- 主表或主业务对象字段使用 `b_` 前缀;明细、子表或扩展业务字段使用 `mx_` 前缀。
- 系统公共字段沿用现有命名,例如 `b_id`、`b_name`、`b_bz`、`b_canuse`、`b_xh`。
- 字段名应表达业务含义,避免使用 `value`、`data`、`type1` 等无法说明用途的名称;同一含义在不同表中应使用统一命名。
5. **通用字段规范**
- 启用/停用统一使用 `b_canuse`,取值为 `0/1`。
- 排序字段统一使用 `b_xh`,默认值为 `0`;需要稳定排序时增加业务主键作为次排序字段。
- 名称、备注和多语言文本使用 `nvarchar`;编码、状态、类型和 SQL 标识类字段使用 `varchar`。
- 日期时间优先使用 `datetime2`;金额、数量等数值字段根据业务精度明确设置 `precision` 和 `scale`。
- 是否允许为空、默认值和数据库默认值必须根据业务语义明确设置,不能无理由全部允许为空或全部设置默认值。
6. **字段与布局规范**
- 数据字段定义、列表布局、编辑布局和查询布局分开保存,避免把页面展示规则硬编码到业务表中。
- 字段配置、字段分组和用户个性化配置必须通过 `b_module_id` 与所属数据模块关联。
- 页面差异优先通过字段布局、查询条件和 SQL 组合实现,不通过复制数据表实现。
7. **SQL 驱动规范**
- 查询和数据处理应优先采用可组合的 SQL 方案,避免把业务逻辑固化在单个页面或固定查询中。
- 各模块应预留 SQL 扩展入口,支持传入 SQL、动态拼接 `where` 条件、选择字段、排序、分页、关联查询和组合查询。
- 当通用配置无法覆盖业务场景时,优先通过 SQL 视图、查询 SQL、条件片段或数据处理 SQL 扩展,不要立即新增重复表或重复模块。
- SQL 参数、查询字段、排序字段和关联关系应使用明确的元数据或配置进行描述,保证 AI 能够根据模块定义生成和组合查询。
8. **索引和约束规范**
- 主键、外键关联字段、常用查询条件、排序字段和唯一业务键应根据实际查询场景建立索引。
- 索引应服务于明确的查询或关联场景,避免无依据地为每个字段单独建索引。
- 数据库层只保留主键、联合主键、索引和必要的唯一约束;唯一约束可用于保证业务键或组合业务键不重复。
- 除主键、唯一约束和索引外,不增加 `CHECK`、触发器等业务规则约束。字段取值、字段组合、状态流转和其他业务校验统一交给业务层处理。
- 非空和默认值属于字段定义的一部分,应根据业务语义设置;不要使用数据库约束代替业务逻辑。
# FMS 新系统核心表结构
## 1. 用户表