车驾管服务系统数据库设计
1. 数据库设计概述
1.1 设计目标
- 数据完整性:保证数据的完整性和一致性,支持业务规则约束
- 性能优化:合理设计索引,优化查询性能,支持高并发
- 可扩展性:表结构设计考虑未来扩展需求,支持业务变化
- 数据安全:敏感数据加密存储,重要数据备份,访问权限控制
- 规范化设计:遵循数据库设计范式,减少数据冗余,保证数据一致性
1.2 数据库选型
- 数据库类型:关系型数据库
- 数据库产品:MySQL 8.0+
- 字符集:utf8mb4
- 排序规则:utf8mb4_unicode_ci
- 存储引擎:InnoDB(支持事务、外键、行级锁)
1.3 命名规范
- 数据库名:duke_boot
- 表命名:使用小写字母,单词间使用下划线分隔
- 系统表:sys_*(如:sys_user, sys_role)
- 业务表:core_*(如:core_order, core_customer)
- 字段命名:使用小写字母,单词间使用下划线分隔
- 索引命名:
- 主键索引:PRIMARY KEY
- 唯一索引:uk_*(如:uk_order_no)
- 普通索引:idx_*(如:idx_customer_id)
- 组合索引:idx__(如:idx_customer_create_time)
1.4 设计原则
- 第一范式(1NF):每个字段都是原子性的,不可再分
- 第二范式(2NF):非主键字段完全依赖于主键
- 第三范式(3NF):非主键字段不依赖于其他非主键字段
- 适当冗余:在性能和数据一致性之间平衡,适当冗余以提高查询性能
- 索引优化:为常用查询字段创建索引,避免过多索引影响写入性能
- 业务完整性:表结构设计必须支持所有业务流程,不能遗漏关键环节
1.4 表设计规范
- 主键设计:统一使用
bigint类型的雪花id主键,字段名统一为表名_id - 时间字段:统一使用
datetime类型,字段名统一为create_time、update_time - 删除标记:统一使用
deleted字段(tinyint,0-未删除,1-已删除),支持软删除 - 状态字段:统一使用
status字段(tinyint),状态值使用枚举常量 - 备注字段:统一使用
remark字段(varchar(500)),用于存储备注信息 - 创建人/更新人:统一使用
create_by、update_by字段(varchar(64)),存储用户ID或用户名 - 版本号:统一使用
version字段(int),用于乐观锁控制并发
2. 数据库表设计
2.1 系统管理表(sys_*)
2.1.1 管理员表(sys_admin)
管理员账号信息表,存储后台管理员的基本信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| admin_id | bigint | - | NOT NULL | - | 主键ID(雪花ID) |
| username | varchar | 64 | NOT NULL | - | 用户名(唯一) |
| password | varchar | 255 | NOT NULL | - | 密码(加密存储) |
| real_name | varchar | 50 | NULL | - | 真实姓名 |
| phone | varchar | 20 | NULL | - | 手机号(唯一) |
| varchar | 100 | NULL | - | 邮箱 | |
| avatar | varchar | 500 | NULL | - | 头像URL |
| dept_id | bigint | - | NULL | - | 部门ID |
| post_id | bigint | - | NULL | - | 岗位ID |
| status | tinyint | - | NOT NULL | 1 | 状态(0-禁用,1-启用) |
| login_ip | varchar | 50 | NULL | - | 最后登录IP |
| login_time | datetime | - | NULL | - | 最后登录时间 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记(0-未删除,1-已删除) |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
admin_id) - UNIQUE KEY
uk_username(username) - UNIQUE KEY
uk_phone(phone) - INDEX
idx_dept_id(dept_id) - INDEX
idx_status(status) - INDEX
idx_create_time(create_time)
2.1.2 部门表(sys_dept)
部门信息表,支持多层级部门结构。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| dept_id | bigint | - | NOT NULL | - | 主键ID |
| parent_id | bigint | - | NULL | 0 | 父部门ID(0表示顶级) |
| dept_name | varchar | 100 | NOT NULL | - | 部门名称 |
| dept_code | varchar | 50 | NULL | - | 部门编码(唯一) |
| leader | varchar | 50 | NULL | - | 负责人 |
| phone | varchar | 20 | NULL | - | 联系电话 |
| varchar | 100 | NULL | - | 邮箱 | |
| address | varchar | 200 | NULL | - | 地址 |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
dept_id) - UNIQUE KEY
uk_dept_code(dept_code) - INDEX
idx_parent_id(parent_id) - INDEX
idx_status(status)
2.1.3 岗位表(sys_post)
岗位信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| post_id | bigint | - | NOT NULL | - | 主键ID |
| post_name | varchar | 100 | NOT NULL | - | 岗位名称 |
| post_code | varchar | 50 | NULL | - | 岗位编码(唯一) |
| post_desc | varchar | 500 | NULL | - | 岗位描述 |
| dept_id | bigint | - | NULL | - | 所属部门ID |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
post_id) - UNIQUE KEY
uk_post_code(post_code) - INDEX
idx_dept_id(dept_id)
2.1.4 角色表(sys_role)
角色信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| role_id | bigint | - | NOT NULL | - | 主键ID |
| role_name | varchar | 100 | NOT NULL | - | 角色名称 |
| role_code | varchar | 50 | NULL | - | 角色编码(唯一) |
| role_desc | varchar | 500 | NULL | - | 角色描述 |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
role_id) - UNIQUE KEY
uk_role_code(role_code)
2.1.5 菜单表(sys_menu)
系统菜单表,支持多级菜单。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| menu_id | bigint | - | NOT NULL | - | 主键ID |
| parent_id | bigint | - | NULL | 0 | 父菜单ID(0表示顶级) |
| menu_name | varchar | 100 | NOT NULL | - | 菜单名称 |
| menu_type | tinyint | - | NOT NULL | 1 | 菜单类型(1-目录,2-菜单,3-按钮) |
| path | varchar | 200 | NULL | - | 路由路径 |
| component | varchar | 200 | NULL | - | 组件路径 |
| perms | varchar | 200 | NULL | - | 权限标识 |
| icon | varchar | 100 | NULL | - | 图标 |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
menu_id) - INDEX
idx_parent_id(parent_id)
2.1.6 管理员角色关联表(sys_admin_role)
管理员与角色的多对多关联表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | - | NOT NULL | - | 主键ID |
| admin_id | bigint | - | NOT NULL | - | 管理员ID |
| role_id | bigint | - | NOT NULL | - | 角色ID |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
id) - UNIQUE KEY
uk_admin_role(admin_id,role_id) - INDEX
idx_admin_id(admin_id) - INDEX
idx_role_id(role_id)
2.1.7 角色菜单关联表(sys_role_menu)
角色与菜单的多对多关联表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | - | NOT NULL | - | 主键ID |
| role_id | bigint | - | NOT NULL | - | 角色ID |
| menu_id | bigint | - | NOT NULL | - | 菜单ID |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
id) - UNIQUE KEY
uk_role_menu(role_id,menu_id) - INDEX
idx_role_id(role_id) - INDEX
idx_menu_id(menu_id)
2.1.8 字典类型表(sys_dict_type)
字典类型表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| dict_type_id | bigint | - | NOT NULL | - | 主键ID |
| dict_type_name | varchar | 100 | NOT NULL | - | 字典类型名称 |
| dict_type_code | varchar | 50 | NOT NULL | - | 字典类型编码(唯一) |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
dict_type_id) - UNIQUE KEY
uk_dict_type_code(dict_type_code)
2.1.9 字典数据表(sys_dict_data)
字典数据表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| dict_data_id | bigint | - | NOT NULL | - | 主键ID |
| dict_type_id | bigint | - | NOT NULL | - | 字典类型ID |
| dict_label | varchar | 100 | NOT NULL | - | 字典标签 |
| dict_value | varchar | 100 | NOT NULL | - | 字典值 |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
dict_data_id) - INDEX
idx_dict_type_id(dict_type_id)
2.1.10 地区表(sys_region)
地区信息表,支持省市区多级结构。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| region_id | bigint | - | NOT NULL | - | 主键ID |
| parent_id | bigint | - | NULL | 0 | 父地区ID(0表示顶级) |
| region_name | varchar | 100 | NOT NULL | - | 地区名称 |
| region_code | varchar | 50 | NULL | - | 地区编码(唯一) |
| region_level | tinyint | - | NOT NULL | 1 | 地区级别(1-省,2-市,3-区/县) |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
region_id) - UNIQUE KEY
uk_region_code(region_code) - INDEX
idx_parent_id(parent_id)
2.1.11 通知公告表(sys_notice)
系统通知公告表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| notice_id | bigint | - | NOT NULL | - | 主键ID |
| notice_title | varchar | 200 | NOT NULL | - | 通知标题 |
| notice_type | tinyint | - | NOT NULL | 1 | 通知类型(1-系统公告,2-业务通知,3-订单通知,4-系统维护,5-活动通知) |
| notice_content | text | - | NULL | - | 通知内容 |
| priority | tinyint | - | NOT NULL | 1 | 优先级(1-低,2-中,3-高) |
| publish_time | datetime | - | NULL | - | 发布时间 |
| expire_time | datetime | - | NULL | - | 过期时间 |
| status | tinyint | - | NOT NULL | 0 | 状态(0-草稿,1-已发布,2-已撤回) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
notice_id) - INDEX
idx_notice_type(notice_type) - INDEX
idx_status(status) - INDEX
idx_publish_time(publish_time)
2.1.12 操作日志表(sys_oper_log)
系统操作日志表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| oper_log_id | bigint | - | NOT NULL | - | 主键ID |
| admin_id | bigint | - | NULL | - | 操作人ID |
| username | varchar | 64 | NULL | - | 操作人用户名 |
| oper_module | varchar | 100 | NULL | - | 操作模块 |
| oper_type | varchar | 50 | NULL | - | 操作类型(新增、修改、删除、查询等) |
| oper_desc | varchar | 500 | NULL | - | 操作描述 |
| oper_method | varchar | 200 | NULL | - | 操作方法 |
| oper_params | text | - | NULL | - | 请求参数 |
| oper_result | text | - | NULL | - | 操作结果 |
| oper_ip | varchar | 50 | NULL | - | 操作IP |
| oper_location | varchar | 200 | NULL | - | 操作地点 |
| oper_browser | varchar | 100 | NULL | - | 浏览器类型 |
| oper_os | varchar | 100 | NULL | - | 操作系统 |
| status | tinyint | - | NOT NULL | 1 | 操作状态(0-失败,1-成功) |
| error_msg | text | - | NULL | - | 错误信息 |
| oper_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 操作时间 |
索引设计:
- PRIMARY KEY (
oper_log_id) - INDEX
idx_admin_id(admin_id) - INDEX
idx_oper_module(oper_module) - INDEX
idx_oper_time(oper_time)
2.1.13 登录日志表(sys_login_log)
系统登录日志表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| login_log_id | bigint | - | NOT NULL | - | 主键ID |
| user_id | bigint | - | NULL | - | 用户ID |
| username | varchar | 64 | NULL | - | 用户名 |
| user_type | tinyint | - | NOT NULL | 1 | 用户类型(1-管理员,2-客户,3-代驾师傅,4-接待员,5-检测站人员) |
| login_ip | varchar | 50 | NULL | - | 登录IP |
| login_location | varchar | 200 | NULL | - | 登录地点 |
| login_browser | varchar | 100 | NULL | - | 浏览器类型 |
| login_os | varchar | 100 | NULL | - | 操作系统 |
| login_status | tinyint | - | NOT NULL | 1 | 登录状态(0-失败,1-成功) |
| login_msg | varchar | 500 | NULL | - | 登录信息 |
| login_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 登录时间 |
索引设计:
- PRIMARY KEY (
login_log_id) - INDEX
idx_user_id(user_id) - INDEX
idx_user_type(user_type) - INDEX
idx_login_time(login_time)
2.2 业务核心表(core_*)
2.2.1 客户表(core_customer)
客户信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| customer_id | bigint | - | NOT NULL | - | 主键ID |
| phone | varchar | 20 | NOT NULL | - | 手机号(唯一) |
| password | varchar | 255 | NULL | - | 密码(加密存储) |
| real_name | varchar | 50 | NULL | - | 真实姓名 |
| id_card | varchar | 18 | NULL | - | 身份证号 |
| avatar | varchar | 500 | NULL | - | 头像URL |
| gender | tinyint | - | NULL | 0 | 性别(0-未知,1-男,2-女) |
| birthday | date | - | NULL | - | 生日 |
| address | varchar | 200 | NULL | - | 地址 |
| region_id | bigint | - | NULL | - | 地区ID |
| wx_openid | varchar | 100 | NULL | - | 微信OpenID |
| wx_unionid | varchar | 100 | NULL | - | 微信UnionID |
| status | tinyint | - | NOT NULL | 1 | 状态(0-禁用,1-正常,2-黑名单) |
| register_time | datetime | - | NULL | - | 注册时间 |
| last_login_time | datetime | - | NULL | - | 最后登录时间 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
customer_id) - UNIQUE KEY
uk_phone(phone) - INDEX
idx_id_card(id_card) - INDEX
idx_status(status) - INDEX
idx_create_time(create_time)
2.2.2 车辆表(core_vehicle)
车辆信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| vehicle_id | bigint | - | NOT NULL | - | 主键ID |
| customer_id | bigint | - | NOT NULL | - | 客户ID |
| plate_no | varchar | 20 | NOT NULL | - | 车牌号 |
| brand | varchar | 50 | NULL | - | 品牌 |
| model | varchar | 50 | NULL | - | 型号 |
| color | varchar | 20 | NULL | - | 颜色 |
| vin | varchar | 17 | NULL | - | VIN码(车架号) |
| engine_no | varchar | 50 | NULL | - | 发动机号 |
| vehicle_type | varchar | 50 | NULL | - | 车辆类型 |
| register_date | date | - | NULL | - | 注册日期 |
| issue_date | date | - | NULL | - | 发证日期 |
| expire_date | date | - | NULL | - | 到期日期 |
| vehicle_photo | varchar | 500 | NULL | - | 车辆照片(多张用逗号分隔) |
| driving_license_photo | varchar | 500 | NULL | - | 行驶证照片(多张用逗号分隔) |
| status | tinyint | - | NOT NULL | 1 | 状态(0-禁用,1-正常) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
vehicle_id) - UNIQUE KEY
uk_plate_no(plate_no) - INDEX
idx_customer_id(customer_id) - INDEX
idx_vin(vin)
2.2.3 服务分类表(core_service_category)
服务分类表,支持多级分类。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| category_id | bigint | - | NOT NULL | - | 主键ID |
| parent_id | bigint | - | NULL | 0 | 父分类ID(0表示顶级) |
| category_name | varchar | 100 | NOT NULL | - | 分类名称 |
| category_code | varchar | 50 | NULL | - | 分类编码(唯一) |
| category_desc | varchar | 500 | NULL | - | 分类描述 |
| icon | varchar | 200 | NULL | - | 图标URL |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
category_id) - UNIQUE KEY
uk_category_code(category_code) - INDEX
idx_parent_id(parent_id)
2.2.4 服务表(core_service)
服务信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| service_id | bigint | - | NOT NULL | - | 主键ID |
| category_id | bigint | - | NOT NULL | - | 服务分类ID |
| service_name | varchar | 100 | NOT NULL | - | 服务名称 |
| service_code | varchar | 50 | NULL | - | 服务编码(唯一) |
| service_desc | text | - | NULL | - | 服务描述 |
| base_price | decimal | 10,2 | NOT NULL | 0.00 | 基础价格 |
| price_rule | varchar | 500 | NULL | - | 价格规则(JSON格式) |
| process_desc | text | - | NULL | - | 办理流程说明 |
| material_list | text | - | NULL | - | 所需材料清单(JSON格式) |
| duration | int | - | NULL | - | 办理时长(天) |
| service_scope | varchar | 500 | NULL | - | 适用范围(JSON格式:地区、车型等) |
| sort_order | int | - | NULL | 0 | 排序号 |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
service_id) - UNIQUE KEY
uk_service_code(service_code) - INDEX
idx_category_id(category_id) - INDEX
idx_status(status)
2.2.5 检测站表(core_station)
检测站信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| station_id | bigint | - | NOT NULL | - | 主键ID |
| station_name | varchar | 100 | NOT NULL | - | 检测站名称(唯一) |
| station_code | varchar | 50 | NULL | - | 检测站编码(唯一) |
| contact_name | varchar | 50 | NULL | - | 联系人 |
| contact_phone | varchar | 20 | NULL | - | 联系电话 |
| address | varchar | 200 | NULL | - | 地址 |
| region_id | bigint | - | NULL | - | 地区ID |
| service_scope | varchar | 500 | NULL | - | 服务范围(JSON格式) |
| service_types | varchar | 500 | NULL | - | 支持的服务类型(JSON格式) |
| business_hours | varchar | 200 | NULL | - | 营业时间 |
| license_photo | varchar | 500 | NULL | - | 营业执照照片 |
| qualification_photo | varchar | 500 | NULL | - | 检测资质证书照片 |
| status | tinyint | - | NOT NULL | 0 | 状态(0-审核中,1-启用,2-停用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
station_id) - UNIQUE KEY
uk_station_name(station_name) - UNIQUE KEY
uk_station_code(station_code) - INDEX
idx_region_id(region_id) - INDEX
idx_status(status)
2.2.6 渠道表(core_channel)
渠道信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| channel_id | bigint | - | NOT NULL | - | 主键ID |
| channel_name | varchar | 100 | NOT NULL | - | 渠道名称 |
| channel_code | varchar | 50 | NOT NULL | - | 渠道编码(唯一) |
| contact_name | varchar | 50 | NULL | - | 联系人 |
| contact_phone | varchar | 20 | NULL | - | 联系电话 |
| address | varchar | 200 | NULL | - | 地址 |
| api_key | varchar | 100 | NULL | - | API密钥 |
| api_secret | varchar | 255 | NULL | - | API密钥(加密存储) |
| callback_url | varchar | 500 | NULL | - | 回调地址 |
| ip_whitelist | text | - | NULL | - | IP白名单(JSON格式) |
| business_types | varchar | 500 | NULL | - | 业务类型(JSON格式) |
| license_photo | varchar | 500 | NULL | - | 营业执照照片 |
| agreement_photo | varchar | 500 | NULL | - | 合作协议照片 |
| status | tinyint | - | NOT NULL | 0 | 状态(0-审核中,1-启用,2-停用,3-已禁用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
channel_id) - UNIQUE KEY
uk_channel_code(channel_code) - INDEX
idx_status(status)
2.2.7 渠道API调用记录表(core_channel_api_log)
渠道API调用记录表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| log_id | bigint | - | NOT NULL | - | 主键ID |
| channel_id | bigint | - | NOT NULL | - | 渠道ID |
| api_name | varchar | 100 | NOT NULL | - | 接口名称 |
| api_version | varchar | 20 | NULL | - | 接口版本 |
| request_params | text | - | NULL | - | 请求参数(JSON格式) |
| response_result | text | - | NULL | - | 响应结果(JSON格式) |
| request_ip | varchar | 50 | NULL | - | 请求IP |
| request_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 请求时间 |
| response_time | datetime | - | NULL | - | 响应时间 |
| duration | int | - | NULL | - | 耗时(毫秒) |
| status | tinyint | - | NOT NULL | 1 | 状态(0-失败,1-成功) |
| error_msg | varchar | 500 | NULL | - | 错误信息 |
索引设计:
- PRIMARY KEY (
log_id) - INDEX
idx_channel_id(channel_id) - INDEX
idx_request_time(request_time) - INDEX
idx_status(status)
2.2.8 师傅表(core_driver)
师傅信息表(代驾师傅和接待员共用)。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| driver_id | bigint | - | NOT NULL | - | 主键ID |
| driver_type | tinyint | - | NOT NULL | 1 | 师傅类型(1-代驾师傅,2-接待员) |
| phone | varchar | 20 | NOT NULL | - | 手机号(唯一) |
| password | varchar | 255 | NULL | - | 密码(加密存储) |
| real_name | varchar | 50 | NULL | - | 真实姓名 |
| id_card | varchar | 18 | NULL | - | 身份证号(唯一) |
| avatar | varchar | 500 | NULL | - | 头像URL |
| gender | tinyint | - | NULL | 0 | 性别(0-未知,1-男,2-女) |
| address | varchar | 200 | NULL | - | 地址 |
| region_id | bigint | - | NULL | - | 地区ID |
| service_region | varchar | 500 | NULL | - | 服务区域(JSON格式) |
| max_concurrent_orders | int | - | NULL | 3 | 最大并发订单数 |
| status | tinyint | - | NOT NULL | 0 | 状态(0-审核中,1-在线,2-忙碌,3-休息,4-已禁用) |
| work_status | tinyint | - | NULL | 0 | 工作状态(0-离线,1-在线,2-忙碌,3-休息) |
| register_time | datetime | - | NULL | - | 注册时间 |
| last_login_time | datetime | - | NULL | - | 最后登录时间 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
driver_id) - UNIQUE KEY
uk_phone(phone) - UNIQUE KEY
uk_id_card(id_card) - INDEX
idx_driver_type(driver_type) - INDEX
idx_status(status) - INDEX
idx_work_status(work_status)
2.2.9 代驾师傅资质表(core_driver_qualification)
代驾师傅资质信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| qualification_id | bigint | - | NOT NULL | - | 主键ID |
| driver_id | bigint | - | NOT NULL | - | 代驾师傅ID |
| license_no | varchar | 50 | NULL | - | 驾驶证号 |
| license_photo | varchar | 500 | NULL | - | 驾驶证照片 |
| license_expire_date | date | - | NULL | - | 驾驶证到期日期 |
| vehicle_plate_no | varchar | 20 | NULL | - | 车辆车牌号 |
| vehicle_brand | varchar | 50 | NULL | - | 车辆品牌 |
| vehicle_model | varchar | 50 | NULL | - | 车辆型号 |
| vehicle_photo | varchar | 500 | NULL | - | 车辆照片 |
| insurance_photo | varchar | 500 | NULL | - | 保险照片 |
| insurance_expire_date | date | - | NULL | - | 保险到期日期 |
| audit_status | tinyint | - | NOT NULL | 0 | 审核状态(0-待审核,1-审核通过,2-审核不通过) |
| audit_time | datetime | - | NULL | - | 审核时间 |
| audit_by | varchar | 64 | NULL | - | 审核人 |
| audit_remark | varchar | 500 | NULL | - | 审核意见 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- PRIMARY KEY (
qualification_id) - UNIQUE KEY
uk_driver_id(driver_id) - INDEX
idx_audit_status(audit_status)
2.2.10 接待员关联检测站表(core_receptionist_station)
接待员与检测站的多对多关联表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | - | NOT NULL | - | 主键ID |
| driver_id | bigint | - | NOT NULL | - | 接待员ID |
| station_id | bigint | - | NOT NULL | - | 检测站ID |
| service_types | varchar | 500 | NULL | - | 可办理的服务类型(JSON格式) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
id) - UNIQUE KEY
uk_driver_station(driver_id,station_id) - INDEX
idx_driver_id(driver_id) - INDEX
idx_station_id(station_id)
2.2.11 订单表(core_order)
订单主表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| order_id | bigint | - | NOT NULL | - | 主键ID |
| order_no | varchar | 50 | NOT NULL | - | 订单号(唯一) |
| customer_id | bigint | - | NOT NULL | - | 客户ID |
| vehicle_id | bigint | - | NOT NULL | - | 车辆ID |
| service_id | bigint | - | NOT NULL | - | 服务ID |
| channel_id | bigint | - | NULL | - | 渠道ID |
| order_type | tinyint | - | NOT NULL | 1 | 订单类型(1-代驾订单,2-自驾订单) |
| order_source | tinyint | - | NOT NULL | 1 | 订单来源(1-客户直接下单,2-渠道API下单,3-管理员手动创建) |
| service_address | varchar | 200 | NULL | - | 服务地址 |
| service_time | datetime | - | NULL | - | 服务时间 |
| driver_id | bigint | - | NULL | - | 代驾师傅ID |
| receptionist_id | bigint | - | NULL | - | 接待员ID |
| station_id | bigint | - | NULL | - | 检测站ID |
| order_amount | decimal | 10,2 | NOT NULL | 0.00 | 订单金额 |
| pay_amount | decimal | 10,2 | NOT NULL | 0.00 | 支付金额 |
| pay_status | tinyint | - | NOT NULL | 0 | 支付状态(0-未支付,1-支付中,2-已支付,3-支付失败,4-已退款,5-退款中,6-退款成功,7-退款失败) |
| pay_time | datetime | - | NULL | - | 支付时间 |
| pay_method | varchar | 20 | NULL | - | 支付方式(微信、支付宝、银行卡) |
| order_status | tinyint | - | NOT NULL | 0 | 订单状态(0-待支付,1-已支付,2-待分配,3-办理中,4-待确认,5-已完成,6-已取消,7-已退款) |
| material_audit_status | tinyint | - | NULL | 0 | 材料审核状态(0-待审核,1-审核通过,2-审核不通过) |
| material_audit_time | datetime | - | NULL | - | 材料审核时间 |
| material_audit_by | varchar | 64 | NULL | - | 材料审核人 |
| complete_time | datetime | - | NULL | - | 完成时间 |
| cancel_time | datetime | - | NULL | - | 取消时间 |
| cancel_reason | varchar | 500 | NULL | - | 取消原因 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
order_id) - UNIQUE KEY
uk_order_no(order_no) - INDEX
idx_customer_id(customer_id) - INDEX
idx_vehicle_id(vehicle_id) - INDEX
idx_service_id(service_id) - INDEX
idx_channel_id(channel_id) - INDEX
idx_driver_id(driver_id) - INDEX
idx_receptionist_id(receptionist_id) - INDEX
idx_station_id(station_id) - INDEX
idx_order_status(order_status) - INDEX
idx_pay_status(pay_status) - INDEX
idx_order_type(order_type) - INDEX
idx_create_time(create_time)
2.2.12 订单状态流转记录表(core_order_status_log)
订单状态流转记录表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| log_id | bigint | - | NOT NULL | - | 主键ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| from_status | tinyint | - | NULL | - | 变更前状态 |
| to_status | tinyint | - | NOT NULL | - | 变更后状态 |
| change_reason | varchar | 500 | NULL | - | 变更原因 |
| operator_id | bigint | - | NULL | - | 操作人ID |
| operator_name | varchar | 64 | NULL | - | 操作人姓名 |
| operator_type | tinyint | - | NULL | - | 操作人类型(1-管理员,2-客户,3-代驾师傅,4-接待员,5-系统) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
log_id) - INDEX
idx_order_id(order_id) - INDEX
idx_create_time(create_time)
2.2.13 订单材料表(core_order_material)
订单材料表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| material_id | bigint | - | NOT NULL | - | 主键ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| material_type | varchar | 50 | NOT NULL | - | 材料类型(身份证、行驶证、车辆照片等) |
| material_name | varchar | 100 | NULL | - | 材料名称 |
| material_url | varchar | 500 | NOT NULL | - | 材料URL |
| is_required | tinyint | - | NOT NULL | 1 | 是否必需(0-否,1-是) |
| upload_by | bigint | - | NULL | - | 上传人ID |
| upload_by_type | tinyint | - | NULL | - | 上传人类型(1-客户,2-管理员,3-代驾师傅,4-接待员) |
| audit_status | tinyint | - | NULL | 0 | 审核状态(0-待审核,1-审核通过,2-审核不通过) |
| audit_time | datetime | - | NULL | - | 审核时间 |
| audit_by | varchar | 64 | NULL | - | 审核人 |
| audit_remark | varchar | 500 | NULL | - | 审核意见 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- PRIMARY KEY (
material_id) - INDEX
idx_order_id(order_id) - INDEX
idx_audit_status(audit_status)
2.2.14 订单进度表(core_order_progress)
订单进度记录表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| progress_id | bigint | - | NOT NULL | - | 主键ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| progress_node | varchar | 50 | NOT NULL | - | 进度节点(订单创建、支付完成、分配完成、材料审核、服务开始、服务完成等) |
| progress_desc | varchar | 500 | NULL | - | 进度描述 |
| operator_id | bigint | - | NULL | - | 操作人ID |
| operator_name | varchar | 64 | NULL | - | 操作人姓名 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
progress_id) - INDEX
idx_order_id(order_id) - INDEX
idx_create_time(create_time)
2.2.15 支付记录表(core_payment)
支付记录表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| payment_id | bigint | - | NOT NULL | - | 主键ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| payment_no | varchar | 50 | NOT NULL | - | 支付流水号(唯一) |
| platform_order_no | varchar | 100 | NULL | - | 支付平台订单号 |
| pay_method | varchar | 20 | NOT NULL | - | 支付方式(微信、支付宝、银行卡) |
| pay_amount | decimal | 10,2 | NOT NULL | - | 支付金额 |
| pay_status | tinyint | - | NOT NULL | 0 | 支付状态(0-待支付,1-支付中,2-支付成功,3-支付失败) |
| pay_time | datetime | - | NULL | - | 支付时间 |
| callback_time | datetime | - | NULL | - | 回调时间 |
| callback_data | text | - | NULL | - | 回调数据(JSON格式) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- PRIMARY KEY (
payment_id) - UNIQUE KEY
uk_payment_no(payment_no) - INDEX
idx_order_id(order_id) - INDEX
idx_pay_status(pay_status) - INDEX
idx_pay_time(pay_time)
2.2.16 退款记录表(core_refund)
退款记录表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| refund_id | bigint | - | NOT NULL | - | 主键ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| refund_no | varchar | 50 | NOT NULL | - | 退款单号(唯一) |
| refund_amount | decimal | 10,2 | NOT NULL | - | 退款金额 |
| refund_reason | varchar | 500 | NULL | - | 退款原因 |
| apply_by | bigint | - | NULL | - | 申请人ID |
| apply_time | datetime | - | NULL | - | 申请时间 |
| audit_status | tinyint | - | NOT NULL | 0 | 审核状态(0-待审核,1-审核通过,2-审核拒绝) |
| audit_time | datetime | - | NULL | - | 审核时间 |
| audit_by | varchar | 64 | NULL | - | 审核人 |
| audit_remark | varchar | 500 | NULL | - | 审核意见 |
| refund_status | tinyint | - | NOT NULL | 0 | 退款状态(0-待退款,1-退款中,2-退款成功,3-退款失败) |
| refund_time | datetime | - | NULL | - | 退款时间 |
| platform_refund_no | varchar | 100 | NULL | - | 支付平台退款单号 |
| callback_data | text | - | NULL | - | 回调数据(JSON格式) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- PRIMARY KEY (
refund_id) - UNIQUE KEY
uk_refund_no(refund_no) - INDEX
idx_order_id(order_id) - INDEX
idx_refund_status(refund_status) - INDEX
idx_audit_status(audit_status)
2.2.17 评价表(core_evaluation)
服务评价表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| evaluation_id | bigint | - | NOT NULL | - | 主键ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| customer_id | bigint | - | NOT NULL | - | 客户ID |
| evaluation_type | tinyint | - | NOT NULL | 1 | 评价类型(1-服务评价,2-检测站评价,3-代驾评价,4-渠道评价) |
| target_id | bigint | - | NULL | - | 评价对象ID(检测站ID、代驾师傅ID、渠道ID等) |
| target_type | varchar | 50 | NULL | - | 评价对象类型(station、driver、channel等) |
| star_rating | tinyint | - | NOT NULL | 5 | 星级评分(1-5星) |
| content | varchar | 500 | NULL | - | 评价内容 |
| images | varchar | 1000 | NULL | - | 评价图片(多张用逗号分隔) |
| tags | varchar | 200 | NULL | - | 评价标签(JSON格式) |
| audit_status | tinyint | - | NOT NULL | 0 | 审核状态(0-待审核,1-已通过,2-已拒绝) |
| audit_time | datetime | - | NULL | - | 审核时间 |
| audit_by | varchar | 64 | NULL | - | 审核人 |
| audit_remark | varchar | 500 | NULL | - | 审核意见 |
| reply_content | varchar | 500 | NULL | - | 回复内容 |
| reply_time | datetime | - | NULL | - | 回复时间 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
索引设计:
- PRIMARY KEY (
evaluation_id) - INDEX
idx_order_id(order_id) - INDEX
idx_customer_id(customer_id) - INDEX
idx_target_id(target_id,target_type) - INDEX
idx_audit_status(audit_status) - INDEX
idx_create_time(create_time)
2.2.18 回访表(core_visit)
客户回访表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| visit_id | bigint | - | NOT NULL | - | 主键ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| customer_id | bigint | - | NOT NULL | - | 客户ID |
| visit_type | tinyint | - | NOT NULL | 1 | 回访类型(1-订单完成回访,2-车辆检测提醒回访) |
| visit_trigger_time | datetime | - | NULL | - | 回访触发时间 |
| visit_time | datetime | - | NULL | - | 回访时间 |
| visit_method | varchar | 20 | NULL | - | 回访方式(电话、短信、微信等) |
| visit_content | text | - | NULL | - | 回访内容 |
| visit_result | varchar | 500 | NULL | - | 回访结果 |
| need_service | tinyint | - | NULL | 0 | 是否需要继续服务(0-否,1-是) |
| next_service_time | datetime | - | NULL | - | 下次服务时间 |
| visit_status | tinyint | - | NOT NULL | 0 | 回访状态(0-待回访,1-回访中,2-已完成,3-已取消) |
| visit_by | bigint | - | NULL | - | 回访人ID(客服人员) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
visit_id) - INDEX
idx_order_id(order_id) - INDEX
idx_customer_id(customer_id) - INDEX
idx_visit_status(visit_status) - INDEX
idx_visit_time(visit_time)
2.2.19 结算规则表(core_settlement_rule)
结算规则配置表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| rule_id | bigint | - | NOT NULL | - | 主键ID |
| target_type | tinyint | - | NOT NULL | - | 结算对象类型(1-渠道,2-检测站,3-代驾师傅) |
| target_id | bigint | - | NOT NULL | - | 结算对象ID |
| settlement_type | tinyint | - | NOT NULL | 1 | 结算类型(1-按订单,2-按比例,3-按固定金额,4-混合) |
| settlement_rule | text | - | NULL | - | 结算规则(JSON格式) |
| settlement_cycle | tinyint | - | NOT NULL | 3 | 结算周期(1-日结,2-周结,3-月结,4-自定义) |
| cycle_config | varchar | 200 | NULL | - | 周期配置(JSON格式) |
| status | tinyint | - | NOT NULL | 1 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
rule_id) - UNIQUE KEY
uk_target(target_type,target_id) - INDEX
idx_settlement_type(settlement_type)
2.2.20 结算单表(core_settlement)
结算单表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| settlement_id | bigint | - | NOT NULL | - | 主键ID |
| settlement_no | varchar | 50 | NOT NULL | - | 结算单号(唯一) |
| target_type | tinyint | - | NOT NULL | - | 结算对象类型(1-渠道,2-检测站,3-代驾师傅) |
| target_id | bigint | - | NOT NULL | - | 结算对象ID |
| rule_id | bigint | - | NULL | - | 结算规则ID |
| settlement_cycle | tinyint | - | NOT NULL | - | 结算周期 |
| cycle_start_time | datetime | - | NOT NULL | - | 周期开始时间 |
| cycle_end_time | datetime | - | NOT NULL | - | 周期结束时间 |
| order_count | int | - | NOT NULL | 0 | 订单数量 |
| settlement_amount | decimal | 10,2 | NOT NULL | 0.00 | 结算金额 |
| settlement_detail | text | - | NULL | - | 结算明细(JSON格式) |
| audit_status | tinyint | - | NOT NULL | 0 | 审核状态(0-待审核,1-已审核,2-已驳回) |
| audit_time | datetime | - | NULL | - | 审核时间 |
| audit_by | varchar | 64 | NULL | - | 审核人 |
| audit_remark | varchar | 500 | NULL | - | 审核意见 |
| payment_status | tinyint | - | NOT NULL | 0 | 支付状态(0-待支付,1-支付中,2-支付成功,3-支付失败) |
| payment_time | datetime | - | NULL | - | 支付时间 |
| payment_method | varchar | 20 | NULL | - | 支付方式 |
| payment_voucher | varchar | 500 | NULL | - | 支付凭证 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
settlement_id) - UNIQUE KEY
uk_settlement_no(settlement_no) - INDEX
idx_target(target_type,target_id) - INDEX
idx_audit_status(audit_status) - INDEX
idx_payment_status(payment_status) - INDEX
idx_cycle_time(cycle_start_time,cycle_end_time)
2.2.21 结算单订单关联表(core_settlement_order)
结算单与订单的关联表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | - | NOT NULL | - | 主键ID |
| settlement_id | bigint | - | NOT NULL | - | 结算单ID |
| order_id | bigint | - | NOT NULL | - | 订单ID |
| settlement_amount | decimal | 10,2 | NOT NULL | - | 该订单的结算金额 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
id) - UNIQUE KEY
uk_settlement_order(settlement_id,order_id) - INDEX
idx_settlement_id(settlement_id) - INDEX
idx_order_id(order_id)
2.2.22 合同表(core_contract)
合同信息表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| contract_id | bigint | - | NOT NULL | - | 主键ID |
| contract_no | varchar | 50 | NOT NULL | - | 合同编号(唯一) |
| contract_type | tinyint | - | NOT NULL | 1 | 合同类型(1-渠道合同,2-检测站合同,3-其他) |
| party_a | varchar | 200 | NOT NULL | - | 甲方 |
| party_b | varchar | 200 | NOT NULL | - | 乙方 |
| target_id | bigint | - | NULL | - | 关联对象ID(渠道ID、检测站ID等) |
| contract_title | varchar | 200 | NOT NULL | - | 合同标题 |
| contract_content | text | - | NULL | - | 合同内容 |
| contract_file | varchar | 500 | NULL | - | 合同文件URL |
| start_date | date | - | NOT NULL | - | 合同开始日期 |
| end_date | date | - | NULL | - | 合同结束日期 |
| profit_ratio | decimal | 5,2 | NULL | - | 分润比例 |
| contract_amount | decimal | 10,2 | NULL | - | 合同金额 |
| sign_date | date | - | NULL | - | 签订日期 |
| status | tinyint | - | NOT NULL | 0 | 状态(0-草稿,1-待审核,2-已审核,3-已生效,4-已到期,5-已终止) |
| audit_time | datetime | - | NULL | - | 审核时间 |
| audit_by | varchar | 64 | NULL | - | 审核人 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
contract_id) - UNIQUE KEY
uk_contract_no(contract_no) - INDEX
idx_target_id(target_id,contract_type) - INDEX
idx_status(status) - INDEX
idx_end_date(end_date)
2.2.23 短信模板表(core_sms_template)
短信模板表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| template_id | bigint | - | NOT NULL | - | 主键ID |
| template_code | varchar | 50 | NOT NULL | - | 模板编码(唯一) |
| template_name | varchar | 100 | NOT NULL | - | 模板名称 |
| template_content | text | - | NOT NULL | - | 模板内容 |
| template_type | varchar | 50 | NULL | - | 模板类型 |
| use_scene | varchar | 200 | NULL | - | 使用场景 |
| variables | varchar | 500 | NULL | - | 模板变量(JSON格式) |
| audit_status | tinyint | - | NOT NULL | 0 | 审核状态(0-草稿,1-待审核,2-审核中,3-已通过,4-已驳回) |
| audit_time | datetime | - | NULL | - | 审核时间 |
| audit_remark | varchar | 500 | NULL | - | 审核意见 |
| status | tinyint | - | NOT NULL | 0 | 状态(0-停用,1-启用) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
template_id) - UNIQUE KEY
uk_template_code(template_code) - INDEX
idx_audit_status(audit_status) - INDEX
idx_status(status)
2.2.24 短信发送记录表(core_sms_log)
短信发送记录表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| log_id | bigint | - | NOT NULL | - | 主键ID |
| template_id | bigint | - | NULL | - | 模板ID |
| template_code | varchar | 50 | NULL | - | 模板编码 |
| phone | varchar | 20 | NOT NULL | - | 接收手机号 |
| content | text | - | NOT NULL | - | 发送内容 |
| send_status | tinyint | - | NOT NULL | 0 | 发送状态(0-待发送,1-发送中,2-已发送,3-发送失败) |
| send_time | datetime | - | NULL | - | 发送时间 |
| callback_time | datetime | - | NULL | - | 回调时间 |
| callback_data | text | - | NULL | - | 回调数据(JSON格式) |
| error_msg | varchar | 500 | NULL | - | 错误信息 |
| retry_count | int | - | NOT NULL | 0 | 重试次数 |
| business_type | varchar | 50 | NULL | - | 业务类型 |
| business_id | bigint | - | NULL | - | 业务ID(订单ID等) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
log_id) - INDEX
idx_template_id(template_id) - INDEX
idx_phone(phone) - INDEX
idx_send_status(send_status) - INDEX
idx_send_time(send_time) - INDEX
idx_business(business_type,business_id)
2.2.25 客服工单表(core_service_ticket)
客服工单表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| ticket_id | bigint | - | NOT NULL | - | 主键ID |
| ticket_no | varchar | 50 | NOT NULL | - | 工单号(唯一) |
| ticket_type | tinyint | - | NOT NULL | 1 | 工单类型(1-咨询,2-投诉,3-建议,4-其他) |
| customer_id | bigint | - | NULL | - | 客户ID |
| order_id | bigint | - | NULL | - | 关联订单ID |
| title | varchar | 200 | NOT NULL | - | 工单标题 |
| content | text | - | NOT NULL | - | 工单内容 |
| priority | tinyint | - | NOT NULL | 1 | 优先级(1-低,2-中,3-高) |
| assign_to | bigint | - | NULL | - | 分配给(客服人员ID) |
| handler_id | bigint | - | NULL | - | 处理人ID |
| ticket_status | tinyint | - | NOT NULL | 0 | 工单状态(0-待处理,1-处理中,2-已解决,3-已关闭) |
| handle_time | datetime | - | NULL | - | 处理时间 |
| close_time | datetime | - | NULL | - | 关闭时间 |
| satisfaction | tinyint | - | NULL | - | 满意度(1-5星) |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| update_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
| update_by | varchar | 64 | NULL | - | 更新人 |
| deleted | tinyint | - | NOT NULL | 0 | 删除标记 |
| version | int | - | NOT NULL | 1 | 版本号 |
| remark | varchar | 500 | NULL | - | 备注 |
索引设计:
- PRIMARY KEY (
ticket_id) - UNIQUE KEY
uk_ticket_no(ticket_no) - INDEX
idx_customer_id(customer_id) - INDEX
idx_order_id(order_id) - INDEX
idx_ticket_status(ticket_status) - INDEX
idx_assign_to(assign_to) - INDEX
idx_create_time(create_time)
2.2.26 客服工单回复表(core_service_ticket_reply)
客服工单回复表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| reply_id | bigint | - | NOT NULL | - | 主键ID |
| ticket_id | bigint | - | NOT NULL | - | 工单ID |
| reply_content | text | - | NOT NULL | - | 回复内容 |
| reply_type | tinyint | - | NOT NULL | 1 | 回复类型(1-客户回复,2-客服回复) |
| reply_by | bigint | - | NOT NULL | - | 回复人ID |
| reply_by_name | varchar | 64 | NULL | - | 回复人姓名 |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- PRIMARY KEY (
reply_id) - INDEX
idx_ticket_id(ticket_id) - INDEX
idx_create_time(create_time)
2.3 其他辅助表
2.3.1 文件表(sys_file)
文件存储表。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| file_id | bigint | - | NOT NULL | - | 主键ID |
| file_name | varchar | 200 | NOT NULL | - | 文件名 |
| file_path | varchar | 500 | NOT NULL | - | 文件路径 |
| file_url | varchar | 500 | NULL | - | 文件访问URL |
| file_type | varchar | 50 | NULL | - | 文件类型 |
| file_size | bigint | - | NULL | - | 文件大小(字节) |
| business_type | varchar | 50 | NULL | - | 业务类型 |
| business_id | bigint | - | NULL | - | 业务ID |
| create_time | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| create_by | varchar | 64 | NULL | - | 创建人 |
索引设计:
- PRIMARY KEY (
file_id) - INDEX
idx_business(business_type,business_id) - INDEX
idx_create_time(create_time)
3. 数据库关系图
3.1 核心业务关系
客户(core_customer) 1---N 车辆(core_vehicle)
客户(core_customer) 1---N 订单(core_order)
车辆(core_vehicle) 1---N 订单(core_order)
服务(core_service) 1---N 订单(core_order)
渠道(core_channel) 1---N 订单(core_order)
代驾师傅(core_driver) 1---N 订单(core_order)
接待员(core_driver) 1---N 订单(core_order)
检测站(core_station) 1---N 订单(core_order)
订单(core_order) 1---N 订单材料(core_order_material)
订单(core_order) 1---N 订单进度(core_order_progress)
订单(core_order) 1---N 订单状态流转(core_order_status_log)
订单(core_order) 1---1 支付记录(core_payment)
订单(core_order) 1---N 退款记录(core_refund)
订单(core_order) 1---N 评价(core_evaluation)
订单(core_order) 1---N 回访(core_visit)
订单(core_order) 1---N 结算单订单关联(core_settlement_order)
3.2 系统管理关系
管理员(sys_admin) N---N 角色(sys_role) [通过 sys_admin_role]
角色(sys_role) N---N 菜单(sys_menu) [通过 sys_role_menu]
管理员(sys_admin) N---1 部门(sys_dept)
管理员(sys_admin) N---1 岗位(sys_post)
3.3 结算关系
结算规则(core_settlement_rule) 1---N 结算单(core_settlement)
结算单(core_settlement) N---N 订单(core_order) [通过 core_settlement_order]
4. 数据字典
4.1 订单状态枚举
| 值 | 说明 |
|---|---|
| 0 | 待支付 |
| 1 | 已支付 |
| 2 | 待分配 |
| 3 | 办理中 |
| 4 | 待确认 |
| 5 | 已完成 |
| 6 | 已取消 |
| 7 | 已退款 |
4.2 支付状态枚举
| 值 | 说明 |
|---|---|
| 0 | 未支付 |
| 1 | 支付中 |
| 2 | 已支付 |
| 3 | 支付失败 |
| 4 | 已退款 |
| 5 | 退款中 |
| 6 | 退款成功 |
| 7 | 退款失败 |
4.3 订单类型枚举
| 值 | 说明 |
|---|---|
| 1 | 代驾订单 |
| 2 | 自驾订单 |
4.4 订单来源枚举
| 值 | 说明 |
|---|---|
| 1 | 客户直接下单 |
| 2 | 渠道API下单 |
| 3 | 管理员手动创建 |
4.5 师傅类型枚举
| 值 | 说明 |
|---|---|
| 1 | 代驾师傅 |
| 2 | 接待员 |
4.6 评价类型枚举
| 值 | 说明 |
|---|---|
| 1 | 服务评价 |
| 2 | 检测站评价 |
| 3 | 代驾评价 |
| 4 | 渠道评价 |
4.7 结算对象类型枚举
| 值 | 说明 |
|---|---|
| 1 | 渠道 |
| 2 | 检测站 |
| 3 | 代驾师傅 |
4.8 结算类型枚举
| 值 | 说明 |
|---|---|
| 1 | 按订单 |
| 2 | 按比例 |
| 3 | 按固定金额 |
| 4 | 混合 |
4.9 结算周期枚举
| 值 | 说明 |
|---|---|
| 1 | 日结 |
| 2 | 周结 |
| 3 | 月结 |
| 4 | 自定义 |
5. 索引优化建议
5.1 查询优化
订单查询优化:
- 订单表按订单状态、创建时间、客户ID等字段建立组合索引
- 订单号建立唯一索引,支持快速查询
客户查询优化:
- 客户表按手机号建立唯一索引
- 按状态、创建时间建立组合索引
师傅查询优化:
- 师傅表按类型、状态、工作状态建立组合索引
- 支持按服务区域快速筛选
5.2 性能优化
分表策略:
- 订单表数据量大时,可按时间分表(按月或按年)
- 日志表数据量大时,可按时间分表并定期归档
读写分离:
- 主库负责写操作
- 从库负责读操作,提升查询性能
缓存策略:
- 字典数据缓存到Redis
- 地区数据缓存到Redis
- 服务分类数据缓存到Redis
6. 数据安全
6.1 敏感数据加密
密码加密:
- 管理员密码、客户密码、师傅密码使用BCrypt加密存储
敏感信息加密:
- 身份证号、手机号等敏感信息加密存储
- API密钥加密存储
6.2 数据备份
备份策略:
- 每日全量备份
- 每小时增量备份
- 备份文件保留30天
备份恢复:
- 定期测试备份恢复流程
- 确保备份文件完整性
7. 数据库维护
7.1 定期维护
索引维护:
- 定期分析索引使用情况
- 删除未使用的索引
- 优化慢查询索引
数据清理:
- 定期清理软删除数据
- 归档历史数据
- 清理过期日志
7.2 监控告警
性能监控:
- 监控数据库连接数
- 监控慢查询
- 监控表空间使用率
异常告警:
- 数据库连接异常告警
- 慢查询告警
- 磁盘空间不足告警
备注:以上数据库设计基于需求文档进行设计,后续可根据实际业务需求进行调整和优化。
