|
@@ -1,7 +1,9 @@
|
|
|
# 数据库设计规范
|
|
|
+
|
|
|
######版本号:V0.0.1
|
|
|
|
|
|
## 基本规范
|
|
|
+
|
|
|
* 数据库统一使用MySQL,数据库存储引擎统一使用InnoDB
|
|
|
* 字符集统一使用`utf8mb4`,排序规则统一使用`utf8mb4_general_ci`
|
|
|
* 数据表、数据字段必须加入中文注释
|
|
@@ -26,54 +28,64 @@
|
|
|
* 数值类型除非有特殊说明,否则默认设置为无符号整数。
|
|
|
|
|
|
## 命名规范
|
|
|
+
|
|
|
* 数据库名称统一使用{域名}.{租户名称}-{从库备份库标识}.{数据库环境}的方式命名。
|
|
|
+
|
|
|
* 域名不包括.com,.cn这种尾缀,如www.huiguanjia.cn,则域名为huiguanjia。
|
|
|
+
|
|
|
* 租户名称为租户唯一标识,若无租户则使用产品名称,如数据库为从库或备份库,则加上-slave或-backup。
|
|
|
+
|
|
|
* 数据库环境分为线上环境,标识为online;开发环境,标识为dev;测试环境,标识为test。
|
|
|
+
|
|
|
* 示例数据库名称如下:
|
|
|
- - huiguanjia.xch.online:绘管家新成海线上数据库
|
|
|
- - huiguanjia.xch.dev:绘管家新成海开发数据库
|
|
|
- - huiguanjia.xch.test:绘管家新成海测试数据库
|
|
|
- - huiguanjia.xch-salve.online:绘管家新成海线上从数据库
|
|
|
- - huiguanjia.xch-backup.online:绘管家新成海线上备份数据库
|
|
|
+
|
|
|
+ - huiguanjia.xch.online:绘管家新成海线上数据库
|
|
|
+ - huiguanjia.xch.dev:绘管家新成海开发数据库
|
|
|
+ - huiguanjia.xch.test:绘管家新成海测试数据库
|
|
|
+ - huiguanjia.xch-salve.online:绘管家新成海线上从数据库
|
|
|
+ - huiguanjia.xch-backup.online:绘管家新成海线上备份数据库
|
|
|
+
|
|
|
* 数据表字段统一使用小写字母,多个单词采用下划线分隔。单词不允许使用拼音,单个单词字符在15字符以内不允许缩写。
|
|
|
+
|
|
|
* 数据表名采用模块名_实体名的方式命名,,中间表两个实体时间通过to连接,表名称长度不得超过60个字符(MySQL最大表名称长度为64,Oracle为30),建议表名在30个字符以内,示例数据表名如下:
|
|
|
- - `service_feedback`:物业服务反馈表
|
|
|
- - `service_feedback_detail`: 物业服务反馈详情表
|
|
|
- - `charge_standard_to_house`: 收费系统收费标准关联房屋表
|
|
|
+
|
|
|
+ - `service_feedback`:物业服务反馈表
|
|
|
+ - `service_feedback_detail`: 物业服务反馈详情表
|
|
|
+ - `charge_standard_to_house`: 收费系统收费标准关联房屋表
|
|
|
|
|
|
* 数据表字段名禁用编程语言关键字,如`abstract`, `int`, `string`, `public`等。
|
|
|
-
|
|
|
+
|
|
|
## 常用字段
|
|
|
+
|
|
|
__常用字段要求必须使用下表的字段,不允许重复新增新的字段名。__
|
|
|
|
|
|
-| 名称 | 数据库字段名 | 数据类型 | 最小长度 | 最大长度 | 备注 |
|
|
|
-|:-------------:|:-------------:|:---------:|:----------:|:--------:|:------------|
|
|
|
-| 主键 | id | int | 10 | 16 | 数据表主键 |
|
|
|
-| 姓名 | name | varchar | 16 | 64 | 推荐长度设置为64 |
|
|
|
-| 性别 | sex | tinyint | 1 | 1 | 0=女,1=男 |
|
|
|
-| 生日 | birthday | int | 11 | 11 | __有符号整数__ |
|
|
|
-| 手机号 | mobile | varchar | 16 | 32 | 推荐长度设置为20 |
|
|
|
-| 电话号码 | telephone | varchar | 16 | 32 | 推荐长度设置为16 |
|
|
|
-| 标题 | title | varchar | 64 | 128 | 推荐长度设置为128 |
|
|
|
-| 摘要 | summary | varchar | 64 | 128 | 推荐长度设置为64 |
|
|
|
-| 备注 | remark | varchar | 64 | 128 | 推荐长度设置为64 |
|
|
|
-| 创建时间 | created_at | int | 11 | 14 | 时间戳,如果保留毫秒数则使用14位 |
|
|
|
-| 更新时间 | updated_at | int | 11 | 14 | 时间戳,如果保留毫秒数则使用14位 |
|
|
|
-| 创建人 | created_by | int | 10 | 16 | 存储数据创建者ID |
|
|
|
-| 更新人 | updated_by | int | 10 | 16 | 存储最近一次更新者ID |
|
|
|
-| 省份名 | province_name | varchar | 16 | 32 | 推荐长度设置为32 |
|
|
|
-| 省份编号 | province_id | int | 9 | 11 | 推荐长度设置为10 |
|
|
|
-| 城市名 | city_name | varchar | 16 | 32 | 推荐长度设置为32 |
|
|
|
-| 城市编号 | city_id | int | 9 | 11 | 推荐长度设置为10 |
|
|
|
-| 地区名 | district_name | varchar | 16 | 32 | 推荐长度设置为32 |
|
|
|
-| 地区编号 | district_id | int | 9 | 11 | 推荐长度设置为10 |
|
|
|
-| 经度 | longitude | decimal | 10,6 | 10,6 | |
|
|
|
-| 纬度 | latitude | decimal | 10,6 | 10,6 | |
|
|
|
-| 单价 | price | decimal | 8,2 | 16,6 | 推荐使用12,6,如果是参与计算的单价建议保留6位小数|
|
|
|
-| 删除标记 | deleted | tinyint | 1 | 1 | 1=已删除,0=正常 |
|
|
|
-| 数据可见性 | visible | tinyint | 1 | 1 | 0=不可见,1=可见,仅适用于针对C端用户 |
|
|
|
-| 是否启用 | enable | tinyint | 1 | 1 | 0=禁用,1=启用 |
|
|
|
+| 名称 | 数据库字段名 | 数据类型 | 最小长度 | 最大长度 | 备注 |
|
|
|
+|:-----:|:-------------:|:-------:|:----:|:----:|:--------------------------- |
|
|
|
+| 主键 | id | int | 10 | 16 | 数据表主键 |
|
|
|
+| 姓名 | name | varchar | 16 | 64 | 推荐长度设置为64 |
|
|
|
+| 性别 | sex | varchar | 1 | 20 | male=男,female=女 |
|
|
|
+| 生日 | birthday | int | 11 | 11 | __有符号整数__ |
|
|
|
+| 手机号 | mobile | varchar | 16 | 32 | 推荐长度设置为20 |
|
|
|
+| 电话号码 | telephone | varchar | 16 | 32 | 推荐长度设置为16 |
|
|
|
+| 标题 | title | varchar | 64 | 128 | 推荐长度设置为128 |
|
|
|
+| 摘要 | summary | varchar | 64 | 128 | 推荐长度设置为64 |
|
|
|
+| 备注 | remark | varchar | 64 | 128 | 推荐长度设置为64 |
|
|
|
+| 创建时间 | created_at | int | 11 | 14 | 时间戳,如果保留毫秒数则使用14位 |
|
|
|
+| 更新时间 | updated_at | int | 11 | 14 | 时间戳,如果保留毫秒数则使用14位 |
|
|
|
+| 创建人 | created_by | int | 10 | 16 | 存储数据创建者ID |
|
|
|
+| 更新人 | updated_by | int | 10 | 16 | 存储最近一次更新者ID |
|
|
|
+| 省份名 | province_name | varchar | 16 | 32 | 推荐长度设置为32 |
|
|
|
+| 省份编号 | province_id | int | 9 | 11 | 推荐长度设置为10 |
|
|
|
+| 城市名 | city_name | varchar | 16 | 32 | 推荐长度设置为32 |
|
|
|
+| 城市编号 | city_id | int | 9 | 11 | 推荐长度设置为10 |
|
|
|
+| 地区名 | district_name | varchar | 16 | 32 | 推荐长度设置为32 |
|
|
|
+| 地区编号 | district_id | int | 9 | 11 | 推荐长度设置为10 |
|
|
|
+| 经度 | longitude | decimal | 10,6 | 10,6 | |
|
|
|
+| 纬度 | latitude | decimal | 10,6 | 10,6 | |
|
|
|
+| 单价 | price | decimal | 8,2 | 16,6 | 推荐使用12,6,如果是参与计算的单价建议保留6位小数 |
|
|
|
+| 删除标记 | deleted | tinyint | 1 | 1 | 1=已删除,0=正常 |
|
|
|
+| 数据可见性 | visible | tinyint | 1 | 1 | 0=不可见,1=可见,仅适用于针对C端用户 |
|
|
|
+| 是否启用 | enable | tinyint | 1 | 1 | 0=禁用,1=启用 |
|
|
|
|
|
|
##业务表必备字段
|
|
|
业务表是指关系产品具体业务逻辑实现的数据表,不包括诸如日志,配置等表。业务表要求必须有以下字段:
|
|
@@ -84,4 +96,4 @@ __常用字段要求必须使用下表的字段,不允许重复新增新的字
|
|
|
* `updated_at`: 最近一次更新时间(创建时等于创建时间)
|
|
|
* `updated_by`: 最近一次更新人(如非后台更新,设置为0,创建时等于创建人)
|
|
|
* `deleted`: 删除标记(默认为0,即正常状态)
|
|
|
-* `remark`: 备注(默认为空字符串)
|
|
|
+* `remark`: 备注(默认为空字符串)
|