字段类型规范是什么
维度字段类型与枚举规范指全库统一维度的数据类型与取值表达:枚举用固定编码而非 yes/no 混用,字符串入库前统一去空格与大小写,布尔统一为 tinyint 的 0/1,编码类字段用编码而不是中文名做主键。它解决的是同一业务含义在不同表里写法不同,导致 join 不上、过滤条件悄悄失效的问题。规范要写进数据字典并随变更流程走。
基本信息
| 枚举 | 统一编码值域,禁用中英文并存 |
|---|---|
| 字符串 | trim 后存储,大小写规范统一 |
| 布尔 | tinyint 0/1,不用 yes/no、Y/N |
| 编码 | 用编码做键,中文名只做展示属性 |
| 登记 | 值域写进数据字典,新增走变更流程 |
典型使用场景
- 建维表:新建维表时按规范挑类型,避免下游反复转换
- 多源合并:两个源对性别、状态的写法不同,入仓先归一
- join 排查:关联不上时常因为两侧类型或大小写不一致
- 报表过滤:状态值新增后旧过滤条件静默失效,需要有值域约束
- 数据字典维护:值域随业务扩展,规范要求同步登记与通知下游
- 存储优化:枚举用 tinyint 替代长字符串,压缩与扫描都更省
规范示例
规范示例
is_active tinyint NOT NULL DEFAULT 0 -- 0/1,不用 yes/no
user_name varchar(64) -- trim 后存储,保留原始大小写只做展示
city_code varchar(12) -- 统一行政区编码,不用中文名做键
gender_code tinyint -- 0 未知 1 男 2 女,值域固定在字典里
status varchar(16) -- 全小写英文枚举,禁用中文与首字母大写混写类型规范对照
| 字段 | 推荐 | 常见错误写法 |
|---|---|---|
| 布尔 | tinyint 0/1 | yes/no、Y/N、true/false 混用 |
| 枚举 | 短字符串编码或 tinyint | 中文值与英文值并存,长度随手给 255 |
| 日期 | date 或 yyyyMMdd 的 int | varchar 存 2026/10/13、2026-10-13 混排 |
| 金额 | decimal 明确精度 | float 参与金额计算 |
| 编码类键 | 定长编码 varchar | 中文名做主键,改名即断链 |
| 字符串 | trim 后入仓 | 前后空格导致 join 不中 |
枚举值域一旦对外使用就属于契约:新增取值要评估下游过滤条件、报表分组与 API 参数是否兼容,删除或改语义更要走版本管理。字符串字段尽量明确最大长度,避免下游按 255 预估内存与索引长度。