福建水务营收系统数据库设计说明书
| 文件状态: |
文档密级: |
公开 |
| 【 】草稿 |
|
|
| 【 】修改稿 |
|
|
| 【√】正式发布 |
|
|
|
当前版本: |
V1.5 |
|
作者: |
唐伟杰 |
|
完成日期: |
2025-08-01 |
版本历史
| 日期 |
版本号 |
作者 |
备注 |
| 2025-07-17 |
V1.0 |
唐伟杰 |
初稿 |
| 2025-07-17 |
V1.1 |
唐伟杰 |
根据用户要求,严格对齐SQL文件,确保所有表和字段的完整性。 |
| 2025-08-01 |
V1.2 |
唐伟杰 |
1. 根据详细设计说明书调整目录结构,按6个子系统重新组织表结构。 2. 补充移动端表设计优化说明,明确移动端与Web端表复用策略。 3. 新增5个移动端特有表的详细设计,符合表设计优化原则。 |
| 2025-08-01 |
V1.3 |
唐伟杰 |
数据库系统变更:将OpenGauss替换为达梦数据库 8.0+,作为主力国产数据库方案。 |
| 2025-08-01 |
V1.4 |
唐伟杰 |
单点登录采用OAuth2.0协议:新增OAuth2.0相关数据表设计,包括客户端信息表、访问令牌表、刷新令牌表、授权码表。 |
目录
前言
本文档详细描述了福建水务营收系统的数据库设计,包括总体架构、E-R图、数据表结构、字段定义和索引策略。旨在为开发和运维人员提供清晰的数据结构参考。
外部设计
- 数据库系统: 主力采用国产数据库 达梦数据库 8.0+。系统设计上兼容 MySQL 8.x 或 MariaDB 10.x。
- 数据库工具: 使用 Navicat, DBeaver, DataGrip 等主流数据库管理工具。
- 约定:
- 表名: 全部小写,单词间使用下划线
_ 分隔。业务表以 biz_ 开头,系统管理表以 system_ 开头。
- 字段名: 全部小写,驼峰式命名(如
userId),与Java实体类属性保持一致。
- 主键: 统一命名为
id,类型为 bigint,自增。
- 通用字段: 所有表必须包含
id, creator, create_time, updater, update_time, deleted, tenant_id 字段。
- 字符集: 统一使用
utf8mb4 字符集。
数据库设计说明
数据库设计遵循第三范式(3NF),并采用基于tenant_id字段隔离的SaaS多租户架构。
表结构设计
数据表总体概览
说明:本次重点对齐 SYS-002 相关数据库口径。SYS-002 的核心表命名已统一收敛为 biz_* 与 bk_*,并已清理旧稿中分散的历史表模型。对于旧数据字典中仍未在 backend 识别到独立实体表的对象,本文以“业务对象/处理场景”描述,不强行拆分为真实表。
| 模块 |
表前缀 |
主要功能 |
当前口径 |
| 系统公共 |
system_ |
用户、角色、权限、部门、租户、字典、日志、OAuth2 等统一平台能力 |
保持现稿 |
| SYS-002 基础配置与价格体系 |
biz_community, biz_company_*, biz_meter_*, biz_price_*, biz_template_* |
小区、水司账户、水表参数、价格体系、调价快照、优惠方案、模板关系等 |
已按真实表对齐 |
| SYS-002 客户主数据与账户关系 |
biz_cust*, biz_account |
客户主档、联系人、客户组、水表绑定、开票信息、托收/代扣关系、编号规则等 |
已按真实表对齐 |
| SYS-002 抄表开账与账单 |
biz_meter, biz_meter_book, biz_meter_read, biz_reading_*, biz_charge* |
抄表册本、抄表状态、读数留痕、开账主单与明细 |
已按真实表对齐 |
| SYS-002 收费票据与操作留痕 |
biz_collection, biz_withholding, biz_invoice*, biz_operat_log* |
收费、托收/代扣、发票、操作留痕与审计支撑 |
已按真实表对齐 |
| SYS-002 业务办理与资料 |
biz_process*, biz_business_*, biz_content* |
业务办理流程、流转、装表资料、附件与扩展数据 |
已按真实表对齐 |
| SYS-002 银行代收与结算 |
bk_* |
渠道路由、交易回调、代扣签约、批次、对账、结算 |
已按真实表对齐 |
| SYS-003 手机抄表 APP |
mobile_* |
移动作业缓存、登录日志、离线任务与现场上报 |
保持现稿 |
| 其他子系统专题表 |
installation_* 等 |
报装、专项发票能力、附属专题表等 |
后续按专题继续整编 |
系统公共表 (system_*)
(基于 sw_system_publcli.sql)
点击展开/折叠系统表详情
system_dept (部门表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
部门id |
| name |
varchar(30) |
Y |
|
部门名称 |
| parent_id |
int8 |
N |
0 |
父部门id |
| sort |
int4 |
N |
0 |
显示顺序 |
| leader_user_id |
int8 |
Y |
|
负责人 |
| phone |
varchar(11) |
Y |
|
联系电话 |
| email |
varchar(50) |
Y |
|
邮箱 |
| type |
varchar(10) |
Y |
|
部门类型 |
| code |
varchar(50) |
Y |
|
部门代码 |
| status |
int2 |
N |
|
部门状态(0正常 1停用) |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
| longitude |
numeric(10,7) |
Y |
|
经度 |
| latitude |
numeric(10,7) |
Y |
|
纬度 |
| remark |
varchar(500) |
Y |
|
备注 |
system_dict_data (字典数据表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
字典编码 |
| sort |
int4 |
N |
0 |
字典排序 |
| label |
varchar(100) |
Y |
|
字典标签 |
| value |
varchar(100) |
Y |
|
字典键值 |
| dict_type |
varchar(100) |
Y |
|
字典类型 |
| status |
int2 |
N |
0 |
状态(0正常 1停用) |
| color_type |
varchar(100) |
Y |
|
颜色类型 |
| css_class |
varchar(100) |
Y |
|
css 样式 |
| remark |
varchar(500) |
Y |
|
备注 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_dict_type (字典类型表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
字典主键 |
| name |
varchar(100) |
Y |
|
字典名称 |
| type |
varchar(100) |
Y |
|
字典类型 |
| status |
int2 |
N |
0 |
状态(0正常 1停用) |
| remark |
varchar(500) |
Y |
|
备注 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| deleted_time |
timestamp(6) |
Y |
|
删除时间 |
system_login_log (系统访问记录)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
访问ID |
| log_type |
int8 |
N |
|
日志类型 |
| trace_id |
varchar(64) |
Y |
|
链路追踪编号 |
| user_id |
int8 |
N |
0 |
用户编号 |
| user_type |
int2 |
N |
0 |
用户类型 |
| username |
varchar(50) |
Y |
|
用户账号 |
| result |
int2 |
N |
|
登陆结果 |
| user_ip |
varchar(50) |
N |
|
用户 IP |
| user_agent |
varchar(512) |
N |
|
浏览器 UA |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_mail_account (邮箱账号表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
主键 |
| mail |
varchar(255) |
N |
|
邮箱 |
| username |
varchar(255) |
N |
|
用户名 |
| password |
varchar(255) |
N |
|
密码 |
| host |
varchar(255) |
N |
|
SMTP 服务器域名 |
| port |
int4 |
N |
|
SMTP 服务器端口 |
| ssl_enable |
bool |
N |
false |
是否开启 SSL |
| starttls_enable |
bool |
N |
false |
是否开启 STARTTLS |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_mail_log (邮件日志表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
Y |
|
用户编号 |
| user_type |
int2 |
Y |
|
用户类型 |
| to_mail |
varchar(255) |
N |
|
接收邮箱地址 |
| account_id |
int8 |
N |
|
邮箱账号编号 |
| from_mail |
varchar(255) |
N |
|
发送邮箱地址 |
| template_id |
int8 |
N |
|
模板编号 |
| template_code |
varchar(63) |
N |
|
模板编码 |
| template_nickname |
varchar(255) |
Y |
|
模版发送人名称 |
| template_title |
varchar(255) |
N |
|
邮件标题 |
| template_content |
varchar(10240) |
N |
|
邮件内容 |
| template_params |
varchar(255) |
N |
|
邮件参数 |
| send_status |
int2 |
N |
0 |
发送状态 |
| send_time |
timestamp(6) |
Y |
|
发送时间 |
| send_message_id |
varchar(255) |
Y |
|
发送返回的消息 ID |
| send_exception |
varchar(4096) |
Y |
|
发送异常 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_mail_template (邮件模版表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| name |
varchar(63) |
N |
|
模板名称 |
| code |
varchar(63) |
N |
|
模板编码 |
| account_id |
int8 |
N |
|
发送的邮箱账号编号 |
| nickname |
varchar(255) |
Y |
|
发送人名称 |
| title |
varchar(255) |
N |
|
模板标题 |
| content |
varchar(10240) |
N |
|
模板内容 |
| params |
varchar(255) |
N |
|
参数数组 |
| status |
int2 |
N |
|
开启状态 |
| remark |
varchar(255) |
Y |
|
备注 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_users (用户表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
用户ID |
| username |
varchar(30) |
N |
|
用户账号 |
| password |
varchar(100) |
N |
|
密码 |
| nickname |
varchar(30) |
N |
|
用户昵称 |
| remark |
varchar(500) |
Y |
|
备注 |
| dept_id |
int8 |
Y |
|
部门ID |
| post_ids |
varchar(255) |
Y |
|
岗位编号数组 |
| email |
varchar(50) |
Y |
|
用户邮箱 |
| mobile |
varchar(11) |
Y |
|
手机号码 |
| sex |
int2 |
Y |
|
用户性别 |
| avatar |
varchar(512) |
Y |
|
头像地址 |
| status |
int2 |
N |
|
帐号状态(0正常 1停用) |
| login_ip |
varchar(50) |
Y |
|
最后登录IP |
| login_date |
timestamp(6) |
Y |
|
最后登录时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_role (角色信息表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
角色ID |
| name |
varchar(30) |
N |
|
角色名称 |
| code |
varchar(100) |
N |
|
角色权限字符串 |
| sort |
int4 |
N |
|
显示顺序 |
| data_scope |
int2 |
N |
1 |
数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限) |
| data_scope_dept_ids |
varchar(500) |
N |
|
数据范围(指定部门数组) |
| status |
int2 |
N |
|
角色状态(0正常 1停用) |
| type |
int2 |
N |
|
角色类型 |
| remark |
varchar(500) |
Y |
|
备注 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
菜单ID |
| name |
varchar(50) |
N |
|
菜单名称 |
| permission |
varchar(100) |
N |
|
权限标识 |
| type |
int2 |
N |
|
菜单类型 |
| sort |
int4 |
N |
0 |
显示顺序 |
| parent_id |
int8 |
N |
0 |
父菜单ID |
| path |
varchar(200) |
Y |
|
路由地址 |
| icon |
varchar(100) |
Y |
|
菜单图标 |
| component |
varchar(255) |
Y |
|
组件路径 |
| component_name |
varchar(255) |
Y |
|
组件名 |
| status |
int2 |
N |
|
菜单状态 |
| visible |
bool |
N |
true |
是否可见 |
| keep_alive |
bool |
N |
true |
是否缓存 |
| always_show |
bool |
N |
true |
是否总是显示 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_tenant (租户表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
租户编号 |
| name |
varchar(30) |
N |
|
租户名 |
| contact_user_id |
int8 |
Y |
|
联系人的用户编号 |
| contact_name |
varchar(30) |
N |
|
联系人 |
| contact_mobile |
varchar(500) |
Y |
|
联系手机 |
| status |
int2 |
N |
|
租户状态(0正常 1停用) |
| website |
varchar(256) |
Y |
|
绑定域名 |
| package_id |
int8 |
N |
|
租户套餐编号 |
| expire_time |
timestamp(6) |
N |
|
过期时间 |
| account_count |
int4 |
N |
|
账号数量 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_user_session (用户会话表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
会话ID |
| user_id |
int8 |
N |
|
用户ID |
| session_id |
varchar(100) |
N |
|
会话标识 |
| token |
varchar(500) |
N |
|
访问令牌 |
| refresh_token |
varchar(500) |
Y |
|
刷新令牌 |
| login_ip |
varchar(50) |
N |
|
登录IP |
| login_location |
varchar(100) |
Y |
|
登录地点 |
| user_agent |
varchar(500) |
Y |
|
用户代理 |
| session_timeout |
int4 |
N |
1800 |
会话超时时间(秒) |
| last_access_time |
timestamp(6) |
N |
pg_systimestamp() |
最后访问时间 |
| is_active |
int2 |
N |
1 |
是否活跃:0-否,1-是 |
| logout_time |
timestamp(6) |
Y |
|
登出时间 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_user_role (用户角色关联表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| user_id |
int8 |
N |
|
用户ID |
| role_id |
int8 |
N |
|
角色ID |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| role_id |
int8 |
N |
|
角色ID |
| menu_id |
int8 |
N |
|
菜单ID |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
子系统1: 统一平台数据表
统一平台主要负责系统基础功能,包括用户管理、权限管理、部门管理等。这些表主要为system_*系列,已在上一节详细描述。
OAuth2.0单点登录相关表
为支持OAuth2.0协议的单点登录功能,系统新增以下OAuth2.0相关数据表:
点击展开/折叠OAuth2.0表详情
system_oauth2_client (OAuth2客户端表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| secret |
varchar(255) |
N |
|
客户端密钥 |
| name |
varchar(255) |
N |
|
应用名 |
| logo |
varchar(255) |
N |
|
应用图标 |
| description |
varchar(255) |
Y |
|
应用描述 |
| status |
int2 |
N |
|
状态 |
| access_token_validity_seconds |
int4 |
N |
|
访问令牌的有效期 |
| refresh_token_validity_seconds |
int4 |
N |
|
刷新令牌的有效期 |
| redirect_uris |
varchar(255) |
N |
|
可重定向的 URI 地址 |
| authorized_grant_types |
varchar(255) |
N |
|
授权类型 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| auto_approve_scopes |
varchar(255) |
Y |
|
自动通过的授权范围 |
| authorities |
varchar(255) |
Y |
|
权限 |
| resource_ids |
varchar(255) |
Y |
|
资源 |
| additional_information |
varchar(4096) |
Y |
|
附加信息 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
system_oauth2_access_token (OAuth2访问令牌表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| user_type |
int2 |
N |
|
用户类型 |
| user_info |
varchar(512) |
N |
|
用户信息 |
| access_token |
varchar(255) |
N |
|
访问令牌 |
| refresh_token |
varchar(32) |
N |
|
刷新令牌 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_oauth2_refresh_token (OAuth2刷新令牌表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| refresh_token |
varchar(32) |
N |
|
刷新令牌 |
| user_type |
int2 |
N |
|
用户类型 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_oauth2_code (OAuth2授权码表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| user_type |
int2 |
N |
|
用户类型 |
| code |
varchar(32) |
N |
|
授权码 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scopes |
varchar(255) |
Y |
|
授权范围 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| redirect_uri |
varchar(255) |
Y |
|
可重定向的 URI 地址 |
| state |
varchar(255) |
Y |
|
状态 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
system_oauth2_approve (OAuth2批准表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
|
编号 |
| user_id |
int8 |
N |
|
用户编号 |
| user_type |
int2 |
N |
|
用户类型 |
| client_id |
varchar(255) |
N |
|
客户端编号 |
| scope |
varchar(255) |
Y |
|
授权范围 |
| approved |
bool |
N |
false |
是否接受 |
| expires_time |
timestamp(6) |
N |
|
过期时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新者 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
子系统2: 营收系统数据表
营收系统是核心业务系统,包括客户管理、抄表管理、账务管理、发票管理等核心业务功能。
点击展开/折叠营收系统表详情
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(200) |
N |
|
小区名称 |
| code |
varchar(100) |
N |
|
小区代码 |
| address |
varchar(500) |
Y |
|
小区地址 |
| contact_number |
varchar(100) |
Y |
|
联系号码 |
| dept_code |
varchar(50) |
N |
|
部门代码,关联系统部门表 |
| parent_id |
int8 |
Y |
|
父级小区id,支持小区层级管理 |
| ancestor_list |
varchar(1000) |
Y |
|
祖级列表,格式:1,2,3表示祖级小区id列表 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
system_user_form_config (用户表单字段配置表-标准)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键ID |
| obj_id |
int8 |
Y |
|
对象ID(用户id/角色id等) |
| config_type |
int2 |
N |
|
配置类型:1-个人配置,2-角色配置 |
| code |
varchar(100) |
N |
|
表格标识/模版号(与菜单或功能标识关联) |
| column_key |
varchar(100) |
N |
|
列字段标识 |
| column_title |
varchar(100) |
Y |
|
自定义列标题 |
| column_width |
int4 |
Y |
|
列宽度 |
| is_visible |
int2 |
N |
0 |
是否显示:0-显示,1-隐藏 |
| is_printable |
int2 |
N |
0 |
是否可打印:0-是,1-否 |
| sort_order |
int4 |
N |
0 |
排序序号 |
| creator |
varchar(64) |
Y |
|
创建人 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| updater |
varchar(64) |
Y |
|
更新人 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户编号 |
biz_company_account (水司账户表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| account_name |
varchar(200) |
N |
|
账户名称 |
| account_address |
varchar(500) |
Y |
|
账户地址 |
| bank_name |
varchar(200) |
N |
|
开户行名称 |
| bank_code |
varchar(100) |
N |
|
开户行代码 |
| bank_account |
varchar(100) |
N |
|
开户行账户 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_cost_component (费用组成表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(100) |
Y |
|
费用名称 |
| code |
varchar(100) |
N |
|
费用代码 |
| penalty_coefficient |
numeric(10,4) |
Y |
|
违约金系数,违约金计算系数,默认为0表示不收取违约金 |
| zero_usage_calculation |
int2 |
N |
0 |
零用量是否计算,0-不计算,1-计算 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_dept_account_rel (部门和水司账户关系表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| dept_code |
varchar(50) |
N |
|
部门代码,关联系统部门表 |
| account_id |
int8 |
N |
|
水司账户id,关联水司账户表 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_meter_caliber (水表口径表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(100) |
Y |
|
口径名称 |
| code |
varchar(100) |
N |
|
口径代码 |
| value |
numeric(10,2) |
Y |
|
口径值(单位:毫米) |
| check_period |
int4 |
Y |
|
强检周期(单位:年) |
| replace_period |
int4 |
Y |
|
定换周期(单位:年) |
| high_coefficient |
numeric(10,4) |
Y |
|
量高系数,抄表量高提醒系数 |
| low_coefficient |
numeric(10,4) |
Y |
|
量低系数,抄表量低提醒系数 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_meter_maker (水表厂家表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(100) |
Y |
|
厂家名称 |
| code |
varchar(100) |
N |
|
厂家代码 |
| recharge_type |
varchar(10) |
Y |
|
充值类型 |
| address |
varchar(500) |
Y |
|
地址 |
| contact |
varchar(100) |
Y |
|
联系人 |
| contact_number |
varchar(100) |
Y |
|
联系号码 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_meter_model (水表型号表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| maker_code |
varchar(100) |
N |
|
厂家代码,关联水表厂家表 |
| name |
varchar(100) |
Y |
|
型号名称 |
| code |
varchar(100) |
N |
|
型号代码 |
| caliber_range |
varchar(200) |
Y |
|
口径范围,如:DN15-DN200 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_meter_range (水表量程表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(100) |
Y |
|
量程名称 |
| code |
varchar(100) |
N |
|
量程代码 |
| value |
numeric(15,3) |
Y |
|
量程值 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_category (水价归属表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(100) |
Y |
|
归属名称 |
| code |
varchar(100) |
N |
|
归属代码 |
| parent_id |
int8 |
Y |
|
父级归属id |
| ancestor_list |
varchar(1000) |
Y |
|
祖级列表,格式:1,2,3表示祖级归属id列表 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_adjustment_history (水价调整历史表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| adjustment_id |
int8 |
N |
|
调整id,关联水价调整表 |
| before_value |
numeric(15,4) |
Y |
|
调整前价格 |
| after_value |
numeric(15,4) |
Y |
|
调整后价格 |
| adjustment_reason |
varchar(500) |
Y |
|
调整原因 |
| effective_date |
timestamp(6) |
Y |
|
生效日期 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_cost_adjustment (价格成本调整表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| cost_component_code |
varchar(100) |
N |
|
费用组成代码,关联费用组成表 |
| price_category_code |
varchar(100) |
N |
|
价格归属代码,关联价格归属表 |
| price_value |
numeric(15,4) |
Y |
|
价格值 |
| effective_date |
timestamp(6) |
Y |
|
生效日期 |
| expire_date |
timestamp(6) |
Y |
|
失效日期 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_dept_rel (价格部门关系表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| price_category_code |
varchar(100) |
N |
|
价格归属代码,关联价格归属表 |
| dept_code |
varchar(50) |
N |
|
部门代码,关联系统部门表 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_discount_cost (价格折扣成本表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| scheme_id |
int8 |
N |
|
折扣方案id,关联价格折扣方案表 |
| cost_component_code |
varchar(100) |
N |
|
费用组成代码,关联费用组成表 |
| discount_rate |
numeric(10,4) |
Y |
|
折扣率,0-1之间的小数 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_discount_scheme (价格折扣方案表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(100) |
Y |
|
方案名称 |
| code |
varchar(100) |
N |
|
方案代码 |
| price_category_code |
varchar(100) |
N |
|
价格归属代码,关联价格归属表 |
| discount_type |
varchar(20) |
Y |
|
折扣类型,如:百分比、固定金额等 |
| effective_date |
timestamp(6) |
Y |
|
生效日期 |
| expire_date |
timestamp(6) |
Y |
|
失效日期 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_discount_tier (价格折扣阶梯表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| scheme_id |
int8 |
N |
|
折扣方案id,关联价格折扣方案表 |
| tier_level |
int4 |
Y |
|
阶梯级别 |
| start_value |
numeric(15,3) |
Y |
|
起始值 |
| end_value |
numeric(15,3) |
Y |
|
结束值 |
| discount_rate |
numeric(10,4) |
Y |
|
折扣率 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_tier_adjustment (价格阶梯调整表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| cost_component_code |
varchar(100) |
N |
|
费用组成代码,关联费用组成表 |
| price_category_code |
varchar(100) |
N |
|
价格归属代码,关联价格归属表 |
| tier_level |
int4 |
Y |
|
阶梯级别 |
| start_value |
numeric(15,3) |
Y |
|
起始值 |
| end_value |
numeric(15,3) |
Y |
|
结束值 |
| price_value |
numeric(15,4) |
Y |
|
价格值 |
| effective_date |
timestamp(6) |
Y |
|
生效日期 |
| expire_date |
timestamp(6) |
Y |
|
失效日期 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_adjustment_snap (水价调整快照表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| code |
int4 |
N |
|
快照编号/版本号,1->2->3递增 |
| effective_date |
timestamp(6) |
N |
|
生效日期 |
| expiry_date |
timestamp(6) |
Y |
|
失效日期,为空表示长期有效 |
| adjuster |
varchar(100) |
Y |
|
调价人 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间/调价时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_template (水价调整模版表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| name |
varchar(100) |
Y |
|
用水性质名称 |
| code |
varchar(100) |
N |
|
模版代码/简号 |
| price_category_code |
varchar(100) |
N |
|
水价归属代码,关联价格归属表 |
| adjustment_snap_code |
varchar(100) |
N |
|
调价快照code,关联水价调整快照表 |
| meter_start |
int4 |
Y |
|
起开量 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_template_dept_rel (模版部门关系表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| dept_code |
varchar(50) |
N |
|
部门代码,关联系统部门表 |
| template_code |
varchar(100) |
N |
|
水价调整模版代码 |
| adjustment_snap_code |
varchar(100) |
N |
|
调价快照code |
| is_default |
int2 |
N |
0 |
是否默认:0-否,1-是 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_tier_adjustment (水价阶梯调整表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| cost_adjustment_id |
int8 |
N |
|
水价费用调整id |
| cost_component_code |
varchar(100) |
N |
|
费用组成代码 |
| tier_level |
int4 |
N |
0 |
阶梯级别,如1、2、3等 |
| start_volume |
numeric(15,3) |
Y |
|
开始水量,单位:立方米 |
| end_volume |
numeric(15,3) |
Y |
|
结束水量,为空表示无上限 |
| price |
numeric(10,4) |
N |
|
价格,单位:元/立方米或元 |
| volume_coefficient |
numeric(10,4) |
N |
1 |
水量系数,用于特殊计算场景 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_discount_scheme (水价优惠方案表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| scheme_name |
varchar(200) |
N |
|
方案名称,如:居民用户优惠方案2024 |
| scheme_code |
varchar(100) |
N |
|
方案代码 |
| template_code |
varchar(100) |
N |
|
水价模版代码 |
| discount_type |
int4 |
N |
|
优惠方式:1-按水量,2-按比例 |
| effective_date |
date |
N |
|
生效日期 |
| expiry_date |
date |
Y |
|
失效日期,为空表示长期有效 |
| scheme_description |
varchar(1000) |
Y |
|
方案描述 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_discount_tier (水价优惠阶梯表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| scheme_id |
int8 |
N |
|
优惠方案id |
| tier_level |
int4 |
N |
0 |
阶梯级别,如1、2、3等 |
| start_volume |
numeric(15,3) |
Y |
|
开始水量,单位:立方米 |
| end_volume |
numeric(15,3) |
Y |
|
结束水量,为空表示无上限 |
| include_in_tier |
int2 |
N |
1 |
是否计入阶梯:0-不计入,1-计入 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
biz_price_discount_cost (水价优惠费用表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| tier_id |
int8 |
N |
|
优惠阶梯id |
| cost_component_code |
varchar(100) |
N |
|
费用组成代码 |
| discount_price |
numeric(10,4) |
N |
|
优惠价格,单位:元/立方米或元 |
| sort |
int4 |
N |
0 |
排序 |
| remark |
varchar(500) |
Y |
|
备注 |
| status |
int2 |
N |
0 |
状态:0-否,1-是 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
SYS-002 客户与账户关系表 (biz_cust* / biz_account)
说明:以下内容按 sql/lhc_数据库设计.md、docs/guides/BACKEND_TABLE_MAPPING.md 与当前 backend 真实表名进行整编,字段以“数据库专项设计阶段需重点关注的核心字段”为主,不再延续旧稿中的 customer_* 系列表命名。
biz_cust (客户主档表)
| 字段名 |
说明 |
id |
主键 |
code |
客户编号 |
name |
客户名称 |
cust_type |
客户类型 |
id_type / id_no |
证件类型 / 证件号码 |
mobile / address |
联系电话 / 地址 |
dept_code |
所属营业部门 |
status |
客户状态 |
tenant_id |
租户编号 |
biz_account (客户账户表)
| 字段名 |
说明 |
id |
主键 |
code |
账户编号 |
cust_id |
客户主档 ID |
balance |
账户余额 |
arrears_amount |
欠费金额 |
account_status |
账户状态 |
tenant_id |
租户编号 |
biz_cust_contact (客户联系人表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
name |
联系人姓名 |
mobile |
联系电话 |
contact_type |
联系人类型 |
is_default |
是否默认联系人 |
biz_cust_group (客户分组表)
| 字段名 |
说明 |
id |
主键 |
code |
分组编码 |
name |
分组名称 |
parent_id |
上级分组 |
status |
状态 |
biz_cust_meter (客户与水表关系表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
meter_id |
水表主档 ID |
bind_type |
绑定类型 |
is_main |
是否主表 |
status |
关系状态 |
biz_cust_invoice (客户开票信息表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
invoice_title |
开票抬头 |
tax_no |
纳税人识别号 |
email |
发票接收邮箱 |
mobile |
联系手机号 |
biz_cust_app_binds (客户应用绑定表)
| 字段名 |
说明 |
id |
主键 |
cust_id |
客户主档 ID |
app_type |
应用类型 |
app_user_id |
外部应用用户标识 |
status |
绑定状态 |
biz_cust_collection_rel / biz_cust_withholding_rel (托收/代扣关系表)
| 表名 |
关键字段 |
说明 |
biz_cust_collection_rel |
cust_id, collection_id, status |
客户与托收关系 |
biz_cust_withholding_rel |
cust_id, withholding_id, status |
客户与代扣关系 |
biz_cust_water_use_scheme / biz_cust_water_scheme_rel (用水方案关系表)
| 表名 |
关键字段 |
说明 |
biz_cust_water_use_scheme |
cust_id, scheme_code, effective_date |
客户用水方案 |
biz_cust_water_scheme_rel |
cust_id, template_code, status |
客户与价格模板关系 |
biz_cust_no_rule / biz_cust_hub_marks (客户编号与集抄标识表)
| 表名 |
关键字段 |
说明 |
biz_cust_no_rule |
rule_code, prefix, dept_code, status |
客户编号规则 |
biz_cust_hub_marks |
cust_id, hub_code, mark_type |
集抄/枢纽标识 |
SYS-002 抄表、水表与价格支撑表 (biz_meter* / biz_reading_* / biz_price_*)
biz_meter (水表主档表)
| 字段名 |
说明 |
id |
主键 |
code |
水表编号 |
meter_no |
出厂表号 |
maker_code / model_code |
厂家 / 型号 |
caliber_code / range_code |
口径 / 量程 |
install_address |
安装地址 |
meter_status |
水表状态 |
tenant_id |
租户编号 |
biz_meter_book (抄表册本表)
| 字段名 |
说明 |
id |
主键 |
code |
册本编号 |
name |
册本名称 |
dept_code |
所属部门 |
reader_user |
抄表员 |
reading_cycle |
抄表周期 |
status |
册本状态 |
biz_meter_read (抄表任务/状态表)
| 字段名 |
说明 |
id |
主键 |
book_id |
册本 ID |
cust_id |
客户 ID |
meter_id |
水表 ID |
read_period |
抄表期间 |
read_status |
抄表状态 |
read_type |
抄表方式 |
biz_reading_data (抄表数据表)
| 字段名 |
说明 |
id |
主键 |
meter_read_id |
抄表任务 ID |
last_reading |
上次读数 |
current_reading |
本次读数 |
water_usage |
用水量 |
read_time |
抄见时间 |
photo_url |
抄表照片 |
biz_last_reading / biz_reading_logs (上次读数与抄表日志)
| 表名 |
关键字段 |
说明 |
biz_last_reading |
meter_id, last_reading, last_read_time |
水表最近有效读数 |
biz_reading_logs |
meter_id, operate_type, operator, operate_time |
抄表处理留痕 |
价格与模板支撑表
| 表名 |
关键字段 |
说明 |
biz_price_category |
code, name, parent_id |
水价归属 |
biz_price_template |
code, price_category_code, adjustment_snap_code |
水价模板 |
biz_price_adjustment_snap |
code, effective_date, expiry_date |
调价快照 |
biz_price_cost_adjustment |
price_category_code, cost_component_code, price_value |
费用调价 |
biz_price_tier_adjustment |
cost_component_code, tier_level, start_volume, end_volume, price |
阶梯价格 |
biz_cost_component |
code, name, penalty_coefficient |
费用组成 |
biz_water_use_scheme |
code, name, status |
用水方案 |
biz_water_use_scheme_tier |
scheme_code, tier_level, start_volume, end_volume |
用水阶梯 |
biz_exceed_water_use_scheme |
scheme_code, exceed_type, price_rule |
超计划规则 |
SYS-002 开账、收费与票据表 (biz_charge* / biz_collection / biz_withholding / biz_invoice*)
biz_charge (营业账主表)
| 字段名 |
说明 |
id |
主键 |
code |
账单编号 |
cust_id |
客户 ID |
record_id |
抄表记录或开账来源 ID |
bill_period |
账单期间 |
total_amount |
账单总金额 |
charge_status |
收费状态 |
due_date |
应缴日期 |
biz_charge_detail (营业账明细表)
| 字段名 |
说明 |
id |
主键 |
charge_id |
营业账主表 ID |
cost_component_code |
费用组成代码 |
usage_amount |
用量 |
unit_price |
单价 |
detail_amount |
明细金额 |
biz_collection / biz_withholding (托收与代扣主表)
| 表名 |
关键字段 |
说明 |
biz_collection |
code, cust_id, charge_id, collection_status |
托收主表 |
biz_withholding |
code, cust_id, charge_id, withholding_status |
代扣主表 |
biz_invoice / biz_invoice_taxrate (发票主表与税率表)
| 表名 |
关键字段 |
说明 |
biz_invoice |
code, cust_id, charge_id, invoice_status, invoice_amount |
发票主表 |
biz_invoice_taxrate |
tax_code, tax_name, tax_rate, status |
税率基础配置 |
biz_operat_log / biz_operat_log_detail (操作留痕表)
| 表名 |
关键字段 |
说明 |
biz_operat_log |
biz_type, biz_id, operate_user, operate_time |
业务操作主日志 |
biz_operat_log_detail |
log_id, field_name, before_value, after_value |
字段级变更留痕 |
边界说明:旧数据字典中的“跨周期水量、特账、红冲、已销调整、呆坏账、实时收费日志”等对象,在当前 backend 范围内未全部识别到独立实体表,数据库专项中统一按业务处理场景描述,不误写为已明确落地的真实表。
SYS-002 业务办理与资料表 (biz_process* / biz_business_* / biz_content*)
| 表名 |
关键字段 |
说明 |
biz_process |
code, biz_type_code, cust_id, process_status |
业务办理流程主表 |
biz_process_transfer |
process_id, from_user, to_user, transfer_time |
流转/转办记录 |
biz_process_cust_contact |
process_id, contact_name, mobile |
办理过程联系人信息 |
biz_process_meter_install |
process_id, meter_id, install_addr |
装表安装信息 |
biz_process_invoice_modifys |
process_id, invoice_id, modify_type |
发票变更记录 |
biz_business_types |
code, name, status |
业务类型定义 |
biz_business_datas |
biz_id, data_key, data_value |
业务扩展数据 |
biz_content |
biz_id, content_type, content_title |
办理资料主表 |
biz_content_attach |
content_id, file_name, file_url |
办理附件表 |
SYS-002 银行代收与结算表 (bk_*)
| 表名 |
关键字段 |
说明 |
bk_payment_channel |
channel_code, channel_name, channel_type, status |
支付渠道主表 |
bk_channel_api_config |
channel_code, api_type, endpoint, crypto_type |
渠道接口配置 |
bk_channel_route_rule |
channel_code, route_type, priority, status |
渠道路由规则 |
bk_channel_statistics |
channel_code, stat_date, success_count, success_amount |
渠道统计 |
bk_transaction |
trade_no, biz_order_no, channel_code, trade_amount, trade_status |
渠道交易流水 |
bk_transaction_callback |
trade_no, callback_time, callback_status, raw_message |
回调留痕 |
bk_transaction_exception |
trade_no, exception_code, exception_desc, handle_status |
异常处理 |
bk_withholding_agreement |
agreement_no, cust_id, channel_code, sign_status |
代扣签约 |
bk_withholding_batch |
batch_no, channel_code, batch_date, batch_status |
代扣批次 |
bk_withholding_item |
batch_id, cust_id, charge_id, item_status |
代扣明细 |
bk_reconcile_batch |
batch_no, channel_code, bill_date, reconcile_status |
对账批次 |
bk_reconcile_diff |
batch_id, trade_no, diff_type, diff_amount |
对账差异 |
bk_settlement_batch |
batch_no, channel_code, settlement_date, settlement_status |
结算批次 |
子系统5: 客户服务数据表(复用 SYS-002 主数据)
客户服务模块本身不再单独维护旧稿中分散的平行表模型,而是以 SYS-002 主数据和交易表为主,按场景复用客户、账单、支付、发票与业务办理数据。
点击展开/折叠客户服务系统表详情
客户服务主要复用表
| 场景 |
复用表 |
说明 |
| 账户绑定管理 |
biz_cust, biz_cust_app_binds, biz_account |
支撑账户绑定、默认客户切换与账号关联 |
| 信息查询服务 |
biz_cust, biz_cust_meter, biz_meter, biz_charge, biz_charge_detail |
支撑客户档案、表计信息、账单与费用查询 |
| 在线缴费服务 |
biz_charge, biz_collection, biz_withholding, bk_transaction, bk_transaction_callback |
支撑缴费下单、支付回写与异步回调 |
| 电子发票服务 |
biz_invoice, biz_invoice_taxrate, biz_cust_invoice |
支撑发票申请、税率匹配与抬头信息 |
| 业务办理服务 |
biz_process, biz_process_transfer, biz_business_datas, biz_content_attach |
支撑业务申请、进度查询与附件资料 |
说明:客户服务模块与 SYS-008、SYS-009、SYS-010 的协同在数据库层主要表现为复用 SYS-002 主业务表并接收外部服务回写结果,不再单列一套平行客户服务数据库模型。
子系统6: 手机抄表APP数据表
手机抄表APP为抄表员和外勤人员提供移动作业工具,支持离线操作,提升现场工作效率。
点击展开/折叠手机抄表APP表详情
移动端表 (mobile_*)
mobile_user_session (移动端用户会话表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| user_id |
int8 |
N |
|
用户ID |
| device_id |
varchar(100) |
N |
|
设备ID |
| device_type |
varchar(20) |
N |
|
设备类型:Android、iOS |
| app_version |
varchar(20) |
Y |
|
应用版本 |
| login_type |
varchar(20) |
N |
|
登录类型:在线、离线 |
| session_token |
varchar(500) |
N |
|
会话令牌 |
| login_time |
timestamp(6) |
N |
pg_systimestamp() |
登录时间 |
| last_active_time |
timestamp(6) |
Y |
|
最后活跃时间 |
| logout_time |
timestamp(6) |
Y |
|
登出时间 |
| session_duration |
int4 |
Y |
0 |
会话时长(分钟) |
| login_ip |
varchar(50) |
Y |
|
登录IP |
| login_location |
varchar(100) |
Y |
|
登录位置 |
| network_type |
varchar(20) |
Y |
|
网络类型:WiFi、4G、5G |
| session_status |
int2 |
N |
1 |
会话状态:0-已结束,1-活跃 |
| sync_status |
int2 |
N |
0 |
同步状态:0-未同步,1-已同步 |
| last_sync_time |
timestamp(6) |
Y |
|
最后同步时间 |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_user_cache (移动端用户缓存表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| user_id |
int8 |
N |
|
用户ID |
| device_id |
varchar(100) |
N |
|
设备ID |
| cache_key |
varchar(200) |
N |
|
缓存键 |
| cache_value |
text |
Y |
|
缓存值 |
| cache_type |
varchar(20) |
N |
|
缓存类型:用户信息、权限、配置、数据 |
| cache_size |
int4 |
Y |
0 |
缓存大小(字节) |
| expire_time |
timestamp(6) |
Y |
|
过期时间 |
| access_count |
int4 |
Y |
0 |
访问次数 |
| last_access_time |
timestamp(6) |
Y |
|
最后访问时间 |
| cache_status |
int2 |
N |
1 |
缓存状态:0-已过期,1-有效 |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_login_log (移动端登录日志表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| user_id |
int8 |
N |
|
用户ID |
| username |
varchar(50) |
N |
|
用户名 |
| device_id |
varchar(100) |
N |
|
设备ID |
| device_type |
varchar(20) |
N |
|
设备类型:Android、iOS |
| device_model |
varchar(100) |
Y |
|
设备型号 |
| app_version |
varchar(20) |
Y |
|
应用版本 |
| login_type |
varchar(20) |
N |
|
登录类型:在线、离线 |
| login_time |
timestamp(6) |
N |
pg_systimestamp() |
登录时间 |
| login_result |
int2 |
N |
|
登录结果:0-成功,1-失败 |
| login_ip |
varchar(50) |
Y |
|
登录IP |
| login_location |
varchar(100) |
Y |
|
登录位置 |
| network_type |
varchar(20) |
Y |
|
网络类型:WiFi、4G、5G |
| failure_reason |
varchar(200) |
Y |
|
失败原因 |
| user_agent |
varchar(500) |
Y |
|
用户代理 |
| screen_resolution |
varchar(20) |
Y |
|
屏幕分辨率 |
| operating_system |
varchar(50) |
Y |
|
操作系统 |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_reading_task (移动端抄表任务表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| task_no |
varchar(32) |
N |
|
任务编号 |
| book_id |
int8 |
N |
|
册本ID |
| reader_id |
int8 |
N |
|
抄表员ID |
| task_date |
date |
N |
|
任务日期 |
| total_meters |
int4 |
Y |
0 |
总表数 |
| completed_meters |
int4 |
Y |
0 |
已完成表数 |
| task_status |
int2 |
N |
0 |
任务状态:0-待开始,1-进行中,2-已完成 |
| download_time |
timestamp(6) |
Y |
|
下载时间 |
| upload_time |
timestamp(6) |
Y |
|
上传时间 |
| sync_status |
int2 |
N |
0 |
同步状态:0-未同步,1-已同步 |
| completion_rate |
numeric(5,2) |
Y |
0 |
完成率 |
| start_time |
timestamp(6) |
Y |
|
开始时间 |
| end_time |
timestamp(6) |
Y |
|
结束时间 |
| work_duration |
int4 |
Y |
0 |
工作时长(分钟) |
| exception_count |
int4 |
Y |
0 |
异常数量 |
| photo_count |
int4 |
Y |
0 |
照片数量 |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_reading_record (移动端抄表记录表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| task_id |
int8 |
N |
|
任务ID |
| customer_id |
int8 |
N |
|
客户ID |
| meter_id |
int8 |
N |
|
水表ID |
| reading_value |
numeric(15,3) |
Y |
0 |
抄表读数 |
| reading_time |
timestamp(6) |
N |
pg_systimestamp() |
抄表时间 |
| reading_type |
varchar(20) |
N |
|
抄表类型:正常、异常、估读 |
| exception_code |
varchar(10) |
Y |
|
异常代码 |
| exception_description |
varchar(500) |
Y |
|
异常描述 |
| photo_path |
varchar(500) |
Y |
|
照片路径 |
| gps_longitude |
numeric(10,6) |
Y |
|
GPS经度 |
| gps_latitude |
numeric(10,6) |
Y |
|
GPS纬度 |
| location_accuracy |
numeric(8,2) |
Y |
|
位置精度 |
| reading_method |
varchar(20) |
Y |
|
抄表方式:手工、扫码、拍照识别 |
| sync_status |
int2 |
N |
0 |
同步状态:0-未同步,1-已同步 |
| sync_time |
timestamp(6) |
Y |
|
同步时间 |
| network_type |
varchar(20) |
Y |
|
网络类型:WiFi、4G、5G、离线 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_task_progress (移动端任务进度表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| task_id |
int8 |
N |
|
任务ID |
| user_id |
int8 |
N |
|
用户ID |
| progress_time |
timestamp(6) |
N |
pg_systimestamp() |
进度时间 |
| completed_count |
int4 |
Y |
0 |
已完成数量 |
| total_count |
int4 |
Y |
0 |
总数量 |
| completion_rate |
numeric(5,2) |
Y |
0 |
完成率 |
| current_location |
varchar(200) |
Y |
|
当前位置 |
| working_status |
varchar(20) |
Y |
|
工作状态:工作中、休息中、结束 |
| progress_description |
varchar(500) |
Y |
|
进度描述 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| battery_level |
int4 |
Y |
0 |
电池电量 |
| network_status |
varchar(20) |
Y |
|
网络状态:在线、离线 |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_data_cache (移动端数据缓存表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| user_id |
int8 |
N |
|
用户ID |
| device_id |
varchar(100) |
N |
|
设备ID |
| data_type |
varchar(20) |
N |
|
数据类型:抄表、收费、工单 |
| data_key |
varchar(200) |
N |
|
数据键 |
| data_value |
text |
Y |
|
数据值 |
| data_size |
int4 |
Y |
0 |
数据大小(字节) |
| cache_time |
timestamp(6) |
N |
pg_systimestamp() |
缓存时间 |
| sync_status |
int2 |
N |
0 |
同步状态:0-未同步,1-已同步,2-同步失败 |
| sync_time |
timestamp(6) |
Y |
|
同步时间 |
| sync_error |
varchar(500) |
Y |
|
同步错误 |
| retry_count |
int4 |
Y |
0 |
重试次数 |
| priority |
int4 |
Y |
0 |
优先级 |
| expire_time |
timestamp(6) |
Y |
|
过期时间 |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_problem_report (移动端问题上报表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| report_no |
varchar(32) |
N |
|
上报编号 |
| reporter_id |
int8 |
N |
|
上报人ID |
| problem_type |
varchar(20) |
N |
|
问题类型:水表故障、管道漏水、水质问题 |
| problem_description |
text |
N |
|
问题描述 |
| problem_location |
varchar(200) |
Y |
|
问题位置 |
| gps_longitude |
numeric(10,6) |
Y |
|
GPS经度 |
| gps_latitude |
numeric(10,6) |
Y |
|
GPS纬度 |
| urgency_level |
varchar(20) |
N |
|
紧急程度:普通、紧急、特急 |
| report_time |
timestamp(6) |
N |
pg_systimestamp() |
上报时间 |
| problem_photos |
text |
Y |
|
问题照片 |
| problem_status |
int2 |
N |
0 |
问题状态:0-待处理,1-处理中,2-已处理 |
| handler |
varchar(100) |
Y |
|
处理人 |
| handle_time |
timestamp(6) |
Y |
|
处理时间 |
| handle_result |
varchar(500) |
Y |
|
处理结果 |
| customer_id |
int8 |
Y |
|
客户ID |
| meter_id |
int8 |
Y |
|
水表ID |
| device_id |
varchar(100) |
Y |
|
设备ID |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
mobile_work_order (移动端工单表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
int8 |
N |
nextval() |
主键 |
| work_order_no |
varchar(32) |
N |
|
工单编号 |
| problem_report_id |
int8 |
Y |
|
问题上报ID |
| work_order_type |
varchar(20) |
N |
|
工单类型:维修、更换、检查 |
| assigned_user |
varchar(100) |
Y |
|
指派人员 |
| assignment_time |
timestamp(6) |
Y |
|
指派时间 |
| work_description |
text |
Y |
|
工作描述 |
| work_location |
varchar(200) |
Y |
|
工作位置 |
| scheduled_time |
timestamp(6) |
Y |
|
预约时间 |
| start_time |
timestamp(6) |
Y |
|
开始时间 |
| end_time |
timestamp(6) |
Y |
|
结束时间 |
| work_duration |
int4 |
Y |
0 |
工作时长(分钟) |
| work_status |
int2 |
N |
0 |
工单状态:0-待处理,1-处理中,2-已完成 |
| work_result |
varchar(500) |
Y |
|
工作结果 |
| completion_photos |
text |
Y |
|
完成照片 |
| customer_signature |
varchar(500) |
Y |
|
客户签名 |
| satisfaction_rating |
int2 |
Y |
|
满意度评分:1-5分 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| sync_status |
int2 |
N |
0 |
同步状态:0-未同步,1-已同步 |
| sync_time |
timestamp(6) |
Y |
|
同步时间 |
| remark |
varchar(500) |
Y |
|
备注 |
| create_time |
timestamp(6) |
N |
pg_systimestamp() |
创建时间 |
| update_time |
timestamp(6) |
N |
pg_systimestamp() |
更新时间 |
| creator |
varchar(100) |
Y |
|
创建人id |
| updater |
varchar(100) |
Y |
|
更新人id |
| deleted |
int2 |
N |
0 |
是否删除 |
| tenant_id |
int8 |
N |
0 |
租户id |
移动端特有表(优化后)
根据移动端表设计优化原则,以下为移动端特有的5个表:
mobile_user_cache (移动端用户缓存表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| device_id |
varchar(100) |
N |
|
设备唯一标识 |
| cache_data |
longtext |
Y |
|
缓存数据(JSON格式) |
| cache_type |
varchar(50) |
N |
|
缓存类型:user_info、task_data、config_data |
| expire_time |
datetime |
Y |
|
过期时间 |
| version |
int |
N |
1 |
版本号,用于数据同步 |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
mobile_search_history (移动端搜索历史表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| search_keyword |
varchar(200) |
N |
|
搜索关键词 |
| search_type |
varchar(50) |
N |
|
搜索类型:customer、meter、address |
| search_result_count |
int |
N |
0 |
搜索结果数量 |
| search_time |
datetime |
N |
CURRENT_TIMESTAMP |
搜索时间 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
mobile_task_sync (移动端任务同步表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| task_id |
bigint |
N |
|
任务ID,关联biz_meter_book.id |
| sync_status |
varchar(20) |
N |
pending |
同步状态:pending、syncing、completed、failed |
| sync_type |
varchar(20) |
N |
|
同步类型:download、upload |
| data_size |
int |
N |
0 |
数据大小(字节) |
| sync_progress |
decimal(5,2) |
N |
0.00 |
同步进度(百分比) |
| error_message |
text |
Y |
|
错误信息 |
| last_sync_time |
datetime |
Y |
|
最后同步时间 |
| retry_count |
int |
N |
0 |
重试次数 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
mobile_work_attachment (移动端工单附件表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| work_order_id |
bigint |
N |
|
工单ID,关联biz_process.id 或 biz_content.id |
| attachment_type |
varchar(20) |
N |
|
附件类型:image、video、document |
| attachment_name |
varchar(200) |
N |
|
附件名称 |
| attachment_path |
varchar(500) |
N |
|
附件存储路径 |
| attachment_size |
bigint |
N |
0 |
附件大小(字节) |
| mime_type |
varchar(100) |
Y |
|
MIME类型 |
| upload_status |
varchar(20) |
N |
pending |
上传状态:pending、uploading、completed、failed |
| upload_progress |
decimal(5,2) |
N |
0.00 |
上传进度(百分比) |
| gps_longitude |
decimal(10,6) |
Y |
|
GPS经度 |
| gps_latitude |
decimal(10,6) |
Y |
|
GPS纬度 |
| capture_time |
datetime |
Y |
|
拍摄/录制时间 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
mobile_app_config (移动端应用配置表)
| 字段名 |
类型 |
是否可空 |
默认值 |
注释 |
| id |
bigint |
N |
AUTO_INCREMENT |
主键 |
| user_id |
bigint |
N |
|
用户ID,关联system_users.id |
| config_key |
varchar(100) |
N |
|
配置项键名 |
| config_value |
text |
Y |
|
配置项值 |
| config_type |
varchar(50) |
N |
|
配置类型:system、user、app |
| config_description |
varchar(500) |
Y |
|
配置描述 |
| is_active |
tinyint |
N |
1 |
是否启用:0-禁用,1-启用 |
| device_id |
varchar(100) |
Y |
|
设备ID |
| create_time |
datetime |
N |
CURRENT_TIMESTAMP |
创建时间 |
| update_time |
datetime |
N |
CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
更新时间 |
| creator |
varchar(64) |
Y |
|
创建者 |
| updater |
varchar(64) |
Y |
|
更新者 |
| deleted |
tinyint |
N |
0 |
是否删除:0-未删除,1-已删除 |
| tenant_id |
bigint |
N |
0 |
租户ID |
移动端表设计优化说明
设计原则
根据系统架构设计原则,移动端优先使用Web端已有的数据表,避免重复建表,确保数据一致性和降低维护成本。
表复用策略
复用Web端表(10个)
移动端直接复用以下Web端已有表:
| 表名 |
用途说明 |
备注 |
system_users |
用户基本信息表 |
复用Web端用户管理 |
system_login_log |
登录日志表 |
扩展设备类型字段记录移动端登录 |
biz_cust |
客户主档表 |
复用 Web 端客户档案 |
biz_meter |
水表主档表 |
复用 Web 端水表档案 |
biz_meter_book |
抄表册本表 |
复用 Web 端抄表任务 |
biz_reading_data |
抄表数据表 |
复用 Web 端抄表数据 |
biz_meter_read |
抄表任务/状态表 |
复用 Web 端抄表过程状态 |
biz_process |
业务办理流程表 |
复用 Web 端现场业务工单/办理数据 |
biz_content_attach |
办理附件表 |
复用 Web 端附件资料 |
biz_account |
客户账户表 |
复用 Web 端账务信息 |
移动端特有表(5个)
仅保留移动端特有的功能表:
| 表名 |
用途说明 |
特有原因 |
mobile_user_cache |
移动端用户缓存表 |
用于离线缓存,移动端特有需求 |
mobile_search_history |
移动端搜索历史表 |
移动端搜索记录管理 |
mobile_task_sync |
移动端任务同步表 |
离线任务管理,移动端特有 |
mobile_work_attachment |
移动端工单附件表 |
现场附件管理,移动端特有 |
mobile_app_config |
移动端应用配置表 |
个性化设置,移动端特有 |
优化效果
- 减少冗余:避免了15+个重复表的创建
- 提升一致性:移动端和Web端共享核心业务数据
- 降低维护成本:统一的数据模型减少维护复杂度
- 符合架构原则:遵循DRY(Don't Repeat Yourself)原则
数据同步策略
- 实时同步:共用表自然保证数据一致性
- 离线缓存:移动端特有表支持离线操作
- 冲突处理:通过时间戳和版本控制处理数据冲突
视图的设计
数据库ER图设计
系统核心表关系图
erDiagram
system_tenant ||--o{ system_users : "租户关系"
system_users ||--o{ system_user_role : "用户角色"
system_role ||--o{ system_user_role : "角色用户"
system_role ||--o{ system_role_menu : "角色权限"
system_menu ||--o{ system_role_menu : "菜单权限"
system_dept ||--o{ system_users : "部门用户"
system_tenant {
int8 id PK
varchar name
varchar contact_name
varchar contact_mobile
int2 status
timestamp expire_time
}
system_users {
int8 id PK
varchar username
varchar nickname
varchar password
int8 dept_id FK
int8 tenant_id FK
int2 status
}
system_role {
int8 id PK
varchar name
varchar code
int2 data_scope
int8 tenant_id FK
}
system_dept {
int8 id PK
varchar name
int8 parent_id
varchar code
int8 tenant_id FK
}
业务核心表关系图
erDiagram
BIZ_CUST ||--|| BIZ_ACCOUNT : 对应账户
BIZ_CUST ||--o{ BIZ_CUST_CONTACT : 联系人
BIZ_CUST ||--o{ BIZ_CUST_METER : 绑定水表
BIZ_METER ||--o{ BIZ_CUST_METER : 被绑定
BIZ_METER_BOOK ||--o{ BIZ_METER_READ : 生成任务
BIZ_METER_READ ||--o{ BIZ_READING_DATA : 采集读数
BIZ_METER ||--o{ BIZ_LAST_READING : 最新读数
BIZ_READING_DATA ||--o{ BIZ_CHARGE : 触发开账
BIZ_CHARGE ||--o{ BIZ_CHARGE_DETAIL : 明细拆分
BIZ_CHARGE ||--o{ BIZ_INVOICE : 开票关联
BIZ_CHARGE ||--o{ BK_TRANSACTION : 支付核销
BIZ_PRICE_CATEGORY ||--o{ BIZ_PRICE_TEMPLATE : 模板归属
BIZ_PRICE_TEMPLATE ||--o{ BIZ_WATER_USE_SCHEME : 计费方案
BIZ_PRICE_CATEGORY ||--o{ BIZ_PRICE_COST_ADJUSTMENT : 费用调整
BIZ_PRICE_COST_ADJUSTMENT ||--o{ BIZ_PRICE_TIER_ADJUSTMENT : 阶梯规则
BK_WITHHOLDING_BATCH ||--o{ BK_WITHHOLDING_ITEM : 批次明细
BK_RECONCILE_BATCH ||--o{ BK_RECONCILE_DIFF : 对账差异
BIZ_CUST {
int8 id PK
varchar code
varchar name
varchar cust_type
varchar mobile
int8 tenant_id FK
}
BIZ_ACCOUNT {
int8 id PK
varchar code
int8 cust_id FK
numeric balance
numeric arrears_amount
}
BIZ_METER {
int8 id PK
varchar code
varchar meter_no
varchar maker_code
varchar model_code
}
BIZ_CHARGE {
int8 id PK
varchar code
int8 cust_id FK
varchar bill_period
numeric total_amount
int2 charge_status
}
BK_TRANSACTION {
int8 id PK
varchar trade_no
varchar biz_order_no
varchar channel_code
numeric trade_amount
int2 trade_status
}
业务视图设计
为简化复杂查询和报表统计,设计以下视图:
v_price_info (价格信息视图)
综合展示价格体系信息,包含价格归属、费用组成、调整历史等。
CREATE VIEW v_price_info AS
SELECT
pc.id as category_id,
pc.name as category_name,
pc.code as category_code,
cc.name as cost_name,
cc.code as cost_code,
pca.price_value,
pca.effective_date,
pca.expire_date
FROM biz_price_category pc
LEFT JOIN biz_price_cost_adjustment pca ON pc.code = pca.price_category_code
LEFT JOIN biz_cost_component cc ON pca.cost_component_code = cc.code
WHERE pc.deleted = 0 AND pca.deleted = 0 AND cc.deleted = 0;
v_meter_info (水表信息视图)
整合水表主档、厂家、型号、口径等基础信息,服务于册本分配、现场抄表和档案查询。
CREATE VIEW v_meter_info AS
SELECT
m.id AS meter_id,
m.code AS meter_code,
m.meter_no,
m.maker_code,
maker.name AS maker_name,
m.model_code,
model.name AS model_name,
m.caliber_code,
caliber.name AS caliber_name,
caliber.value AS caliber_value,
m.range_code,
range_cfg.name AS range_name,
m.install_address,
m.meter_status
FROM biz_meter m
LEFT JOIN biz_meter_maker maker ON m.maker_code = maker.code AND maker.deleted = 0
LEFT JOIN biz_meter_model model ON m.model_code = model.code AND model.deleted = 0
LEFT JOIN biz_meter_caliber caliber ON m.caliber_code = caliber.code AND caliber.deleted = 0
LEFT JOIN biz_meter_range range_cfg ON m.range_code = range_cfg.code AND range_cfg.deleted = 0
WHERE m.deleted = 0;
v_dept_hierarchy (部门层级视图)
展示完整的组织架构层级关系。
CREATE VIEW v_dept_hierarchy AS
WITH RECURSIVE dept_tree AS (
SELECT id, name, code, parent_id, 0 as level, name as path
FROM system_dept
WHERE parent_id = 0 AND deleted = 0
UNION ALL
SELECT d.id, d.name, d.code, d.parent_id, dt.level + 1,
CONCAT(dt.path, ' > ', d.name)
FROM system_dept d
INNER JOIN dept_tree dt ON d.parent_id = dt.id
WHERE d.deleted = 0
)
SELECT * FROM dept_tree;
统计分析视图
v_tenant_summary (租户汇总视图)
按租户维度统计各类数据。
CREATE VIEW v_tenant_summary AS
SELECT
t.id as tenant_id,
t.name as tenant_name,
COUNT(DISTINCT u.id) as user_count,
COUNT(DISTINCT d.id) as dept_count,
COUNT(DISTINCT c.id) as community_count
FROM system_tenant t
LEFT JOIN system_users u ON t.id = u.tenant_id AND u.deleted = 0
LEFT JOIN system_dept d ON t.id = d.tenant_id AND d.deleted = 0
LEFT JOIN biz_community c ON t.id = c.tenant_id AND c.deleted = 0
WHERE t.deleted = 0
GROUP BY t.id, t.name;
索引设计与性能优化
核心索引设计
系统表索引
-- 用户表核心索引
CREATE INDEX idx_system_users_username ON system_users(username);
CREATE INDEX idx_system_users_dept_tenant ON system_users(dept_id, tenant_id);
CREATE INDEX idx_system_users_status_tenant ON system_users(status, tenant_id);
-- 部门表索引
CREATE INDEX idx_system_dept_parent_tenant ON system_dept(parent_id, tenant_id);
CREATE INDEX idx_system_dept_code ON system_dept(code);
-- 角色权限索引
CREATE INDEX idx_system_user_role_user_tenant ON system_user_role(user_id, tenant_id);
CREATE INDEX idx_system_role_menu_role_id ON system_role_menu(role_id);
-- 日志表索引(支持时间范围查询)
CREATE INDEX idx_system_login_log_user_time ON system_login_log(user_id, create_time);
CREATE INDEX idx_system_login_log_ip_time ON system_login_log(user_ip, create_time);
业务表索引
-- 客户主数据索引
CREATE INDEX idx_biz_cust_code ON biz_cust(code);
CREATE INDEX idx_biz_cust_mobile ON biz_cust(mobile);
CREATE INDEX idx_biz_account_cust_status ON biz_account(cust_id, account_status);
-- 水表与抄表索引
CREATE INDEX idx_biz_meter_code ON biz_meter(code);
CREATE INDEX idx_biz_meter_book_dept_status ON biz_meter_book(dept_code, status);
CREATE INDEX idx_biz_meter_read_book_period ON biz_meter_read(book_id, read_period);
CREATE INDEX idx_biz_reading_data_read_time ON biz_reading_data(meter_read_id, read_time);
-- 开账收费索引
CREATE INDEX idx_biz_charge_cust_period ON biz_charge(cust_id, bill_period);
CREATE INDEX idx_biz_charge_status_due ON biz_charge(charge_status, due_date);
CREATE INDEX idx_biz_charge_detail_charge_cost ON biz_charge_detail(charge_id, cost_component_code);
-- 价格体系索引
CREATE INDEX idx_biz_price_category_code ON biz_price_category(code);
CREATE INDEX idx_biz_price_template_category ON biz_price_template(price_category_code, adjustment_snap_code);
CREATE INDEX idx_biz_price_cost_adj_category_cost ON biz_price_cost_adjustment(price_category_code, cost_component_code);
CREATE INDEX idx_biz_price_tier_adj_cost_tier ON biz_price_tier_adjustment(cost_component_code, tier_level);
-- 银行代收与对账索引
CREATE INDEX idx_bk_transaction_trade_no ON bk_transaction(trade_no);
CREATE INDEX idx_bk_transaction_biz_order ON bk_transaction(biz_order_no, trade_status);
CREATE INDEX idx_bk_withholding_batch_date ON bk_withholding_batch(batch_date, batch_status);
CREATE INDEX idx_bk_reconcile_batch_bill_date ON bk_reconcile_batch(bill_date, reconcile_status);
分区表设计
日志表分区策略
-- 登录日志按月分区
CREATE TABLE system_login_log_partition (
LIKE system_login_log INCLUDING ALL
) PARTITION BY RANGE (create_time);
-- 创建月度分区
CREATE TABLE system_login_log_y2024m01 PARTITION OF system_login_log_partition
FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');
CREATE TABLE system_login_log_y2024m02 PARTITION OF system_login_log_partition
FOR VALUES FROM ('2024-02-01') TO ('2024-03-01');
历史数据分区策略
-- 价格调整历史按年分区
CREATE TABLE biz_price_adjustment_history_partition (
LIKE biz_price_adjustment_history INCLUDING ALL
) PARTITION BY RANGE (create_time);
-- 按年度分区
CREATE TABLE biz_price_adjustment_history_y2024 PARTITION OF biz_price_adjustment_history_partition
FOR VALUES FROM ('2024-01-01') TO ('2025-01-01');
查询优化建议
多租户查询优化
-- 建议查询模式:始终带上租户ID
SELECT * FROM system_users
WHERE tenant_id = ? AND status = 0 AND dept_id = ?;
-- 使用覆盖索引减少回表
CREATE INDEX idx_system_users_cover ON system_users(tenant_id, status, dept_id)
INCLUDE (username, nickname, email);
层级查询优化
-- 使用递归CTE查询部门层级
WITH RECURSIVE dept_tree AS (
SELECT id, name, parent_id, 1 as level
FROM system_dept
WHERE id = ? AND tenant_id = ?
UNION ALL
SELECT d.id, d.name, d.parent_id, dt.level + 1
FROM system_dept d
INNER JOIN dept_tree dt ON d.parent_id = dt.id
WHERE d.tenant_id = ? AND dt.level < 10 -- 防止无限递归
)
SELECT * FROM dept_tree;
数据归档策略
日志数据归档
- 保留策略: 在线保留3个月,历史数据转移到归档表
- 归档周期: 每月执行一次归档作业
- 存储方式: 使用列式存储优化查询性能
历史数据处理
-- 创建归档表
CREATE TABLE system_login_log_archive (
LIKE system_login_log INCLUDING ALL
);
-- 归档脚本示例
INSERT INTO system_login_log_archive
SELECT * FROM system_login_log
WHERE create_time < CURRENT_DATE - INTERVAL '3 months';
DELETE FROM system_login_log
WHERE create_time < CURRENT_DATE - INTERVAL '3 months';
安全保密设计
- 用户认证: 所有数据库连接均需通过应用层的身份认证,禁止数据库密码在配置文件中明文存储。
- 权限控制: 数据库用户权限遵循最小权限原则。应用层根据用户角色(RBAC)动态构建SQL,并通过行级安全(RLS)策略限制数据访问范围。
- 数据加密: 对数据库中的密码、密钥等敏感信息,采用BCrypt或SM3等算法进行加密存储。
- 审计日志: 启用数据库审计功能,记录所有DDL和DML操作,特别是对敏感数据的访问和修改。