2
0
Files
build.wfc/docs/99-reference/db.md
2025-02-26 11:10:52 +08:00

26 KiB
Raw Blame History

WANFi Control and Billing System 数据库设计文档

1. 概述

本数据库设计文档描述了 WANFi Control and Billing System 的数据库结构。系统采用 MySQL 数据库,字符集为 utf8mb4主要涉及系统配置、部门、设备、数据字典、定时任务、日志、菜单、角色以及用户管理等模块。

2. 数据库架构

  • 数据库名称wfc_system_db
  • 字符集utf8mb4
  • 校对规则utf8mb4_general_ci

3. 表结构及说明

3.1 参数配置表 - sys_config

用于存储全局系统配置参数。

列名 数据类型 约束 说明
config_id int(11) PRIMARY KEY
AUTO_INCREMENT
参数主键
config_name varchar(100) DEFAULT '' 参数名称
config_key varchar(100) DEFAULT '' 参数键名
config_value varchar(500) DEFAULT '' 参数键值
config_type char(1) DEFAULT 'N' 系统内置标识Y表示内置, N表示非内置
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

记录示例:初始化账号密码、开启用户注册功能、设置登录 IP 黑名单等。


3.2 部门表 - sys_dept

存储各部门信息,支持层级结构。

列名 数据类型 约束 说明
dept_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
部门 ID
parent_id bigint(20) DEFAULT 0 父部门 ID
ancestors varchar(50) DEFAULT '' 祖级列表
dept_name varchar(30) DEFAULT '' 部门名称
order_num int(11) DEFAULT 0 显示顺序
leader varchar(20) 可空 负责人
phone varchar(11) 可空 联系电话
email varchar(50) 可空 邮箱
status char(1) DEFAULT '0' 部门状态0正常、1停用
del_flag char(1) DEFAULT '0' 删除标志0存在2删除
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

插入示例中创建了 ROOT 及其子部门。


3.3 设备表 - sys_device

存储客户平台中设备的各项信息。

列名 数据类型 约束 & 默认值 说明
id bigint(20) PRIMARY KEY
AUTO_INCREMENT
主键
site_id varchar(64) NULLABLE 站点 ID
mac varchar(64) NULLABLE MAC 地址
name varchar(64) NULLABLE 设备名称
type varchar(32) NULLABLE 类型
subtype varchar(32) NULLABLE 子类型
device_series_type varchar(32) NULLABLE 产品系列类型
model varchar(64) NULLABLE 设备型号
ip varchar(64) NULLABLE IP 地址
ipv6s varchar(255) NULLABLE IPv6 地址(可能多个)
uptime varchar(64) NULLABLE 在线时长
status int(11) NULLABLE 状态
last_seen bigint(20) NULLABLE 最后在线时间
cpu_util int(11) NULLABLE CPU 利用率
mem_util int(11) NULLABLE 内存利用率
sn varchar(64) NULLABLE 序列号
license_status int(11) NULLABLE 授权状态
... ... ... 其它详细字段

表中记录了设备相关信息及状态等。


3.4 字典数据表 - sys_dict_data

存储系统使用的字典数据,包含常用的选项列表。

列名 数据类型 约束 说明
dict_code bigint(20) PRIMARY KEY
AUTO_INCREMENT
字典编码
dict_sort int(11) DEFAULT 0 字典排序
dict_label varchar(100) DEFAULT '' 字典标签
dict_value varchar(100) DEFAULT '' 字典键值
dict_type varchar(100) DEFAULT '' 字典类型
css_class varchar(100) 可为空 样式属性(扩展)
list_class varchar(100) 可为空 列表显示样式
is_default char(1) DEFAULT 'Y' 是否默认Y/N
status char(1) DEFAULT '0' 状态0正常 1停用
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) 可空 备注

示例记录包括用户性别、菜单显示与隐藏、系统开关、操作类型等配置项。


3.5 字典类型表 - sys_dict_type

存放字典分组及类型定义。

列名 数据类型 约束 说明
dict_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
字典主键
dict_name varchar(100) DEFAULT '' 字典名称
dict_type varchar(100) DEFAULT ''
UNIQUE
字典类型标识
status char(1) DEFAULT '0' 状态0正常 1停用
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) 可空 备注

示例记录包括“User Gender”、“Menu Status”、 “System Switch”等类型。


3.6 定时任务相关

3.6.1 定时任务表 - sys_job

存储各定时任务的配置信息。

列名 数据类型 约束 说明
job_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
任务ID
job_name varchar(64) NOT NULL, DEFAULT '' 任务名称
job_group varchar(64) NOT NULL, DEFAULT 'DEFAULT' 任务组名称
invoke_target varchar(500) NOT NULL 调用目标字符串
cron_expression varchar(255) DEFAULT '' CRON 表达式
misfire_policy varchar(20) DEFAULT '3' 错误处理策略1立即执行 2执行一次 3放弃执行
concurrent char(1) DEFAULT '1' 是否并发执行0允许、1禁止
status char(1) DEFAULT '0' 任务状态0正常 1暂停
... ... ... 其它字段,如创建与更新时间等

记录示例包括 Omada 同步任务及初始化任务。

3.6.2 定时任务日志表 - sys_job_log

记录任务执行的日志信息。

列名 数据类型 约束 说明
job_log_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
任务日志ID
job_name varchar(64) NOT NULL 任务名称
job_group varchar(64) NOT NULL 任务组名称
invoke_target varchar(500) NOT NULL 调用目标字符串
job_message varchar(500) 可空 日志信息
status char(1) DEFAULT '0' 执行状态0成功、1失败
exception_info varchar(2000) DEFAULT '' 异常信息
create_time datetime NULLABLE 执行时间

3.7 系统访问记录 - sys_logininfor

记录系统用户的登录访问情况。

列名 数据类型 约束 说明
info_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
访问记录主键
user_name varchar(50) DEFAULT '' 用户账号
ipaddr varchar(128) DEFAULT '' 登录 IP 地址
status char(1) DEFAULT '0' 登录状态0成功1失败
msg varchar(255) DEFAULT '' 提示信息
access_time datetime NULLABLE 访问时间

辅助索引包括 status 及 access_time。


3.8 菜单权限表 - sys_menu

存储系统菜单信息以及相应的访问权限标识。

列名 数据类型 约束 说明
menu_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
菜单 ID
menu_name varchar(50) NOT NULL 菜单名称,如 'menu.system.management'
parent_id bigint(20) DEFAULT 0 父级菜单 ID
order_num int(11) DEFAULT 0 显示顺序
path varchar(200) DEFAULT '' 路由地址
component varchar(255) DEFAULT NULL 组件路径
menu_type char(1) 类型M:目录, C:菜单, F:按钮)
visible char(1) DEFAULT '0' 菜单显示状态0显示1隐藏
status char(1) DEFAULT '0' 菜单状态0正常1停用
perms varchar(100) DEFAULT NULL 权限标识
icon varchar(100) DEFAULT '#' 菜单图标
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) DEFAULT '' 备注
name varchar(30) DEFAULT NULL 菜单 key作为前端标识使用

记录插入部分展示了系统管理、工具、账户管理、角色管理、菜单管理、部门管理、岗位管理、字典管理以及多项操作权限的菜单。


3.9 操作日志记录 - sys_oper_log

记录用户在系统中的各项操作,用于安全审计。

列名 数据类型 约束 说明
oper_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
日志主键
title varchar(50) DEFAULT '' 模块标题
business_type int(11) DEFAULT 0 业务类型0其它、1新增、2修改、3删除
method varchar(100) DEFAULT '' 方法名称
request_method varchar(10) DEFAULT '' 请求方式
oper_name varchar(50) DEFAULT '' 操作人员
dept_name varchar(50) DEFAULT '' 部门名称
oper_url varchar(255) DEFAULT '' 请求 URL
oper_ip varchar(128) DEFAULT '' IP 地址
oper_location varchar(255) DEFAULT '' 操作地点
oper_param varchar(2000) DEFAULT '' 请求参数
json_result varchar(2000) DEFAULT '' 返回结果
status int(11) DEFAULT 0 操作状态0正常、1异常
error_msg varchar(2000) DEFAULT '' 错误消息
oper_time datetime NULLABLE 操作时间
cost_time bigint(20) DEFAULT 0 消耗时间(毫秒)

附带建立了 business_type、status 及 oper_time 的索引。


3.10 岗位信息表 - sys_post

记录系统中定义的岗位信息。

列名 数据类型 约束 说明
post_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
岗位 ID
post_code varchar(64) NOT NULL 岗位编码
post_name varchar(50) NOT NULL 岗位名称
post_sort int(11) NOT NULL 显示顺序
status char(1) NOT NULL 状态0正常、1停用
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) DEFAULT NULL 备注

示例记录定义了 administrator、manager、hr 及 user 岗位。


3.11 用户信息表 - sys_user

存储用户账号及相关信息,实现系统登录和管理。

列名 数据类型 约束 说明
user_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
用户 ID
dept_id bigint(20) NULLABLE 所属部门 ID
user_name varchar(30) NOT NULL 用户账号
nick_name varchar(30) NOT NULL 用户昵称
user_type varchar(2) DEFAULT '00' 用户类型例如00系统用户
email varchar(50) DEFAULT '' 用户邮箱
phonenumber varchar(11) DEFAULT '' 手机号码
sex char(1) DEFAULT '0' 性别0男、1女、2未知
avatar varchar(100) DEFAULT '' 头像地址
password varchar(100) DEFAULT '' 密码(通常加密存储,如 bcrypt 结果)
status char(1) DEFAULT '0' 帐号状态0正常、1停用
del_flag char(1) DEFAULT '0' 删除标志0存在、2删除
login_ip varchar(128) DEFAULT '' 最后登录IP
login_date datetime NULLABLE 最后登录时间
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) DEFAULT NULL 备注

系统默认记录了超级管理员super、管理员admin等用户信息。


3.12 用户与岗位关联表 - sys_user_post

用于关联用户与其所属岗位。

列名 数据类型 约束 说明
user_id bigint(20) PRIMARY KEY (联合主键) 用户 ID
post_id bigint(20) PRIMARY KEY (联合主键) 岗位 ID

3.13 用户与角色关联表 - sys_user_role

用于关联用户与分配的角色,实现权限管理。

列名 数据类型 约束 说明
user_id bigint(20) PRIMARY KEY (联合主键) 用户 ID
role_id bigint(20) PRIMARY KEY (联合主键) 角色 ID

插入示例中,用户 1 分配了角色 1Supervisor用户 2 分配了角色 2Administrator


3.14 角色信息表 - sys_role

定义系统内各角色及其基本属性。

列名 数据类型 约束 说明
role_id bigint(20) PRIMARY KEY
AUTO_INCREMENT
角色 ID
role_name varchar(30) NOT NULL 角色名称
role_key varchar(100) NOT NULL 角色权限字符串(作为 RBAC 标识)
role_sort int(11) 可空 显示顺序
data_scope char(1) DEFAULT '1' 数据权限范围(例如全部、自定、部门等)
menu_check_strictly tinyint(1) DEFAULT 1 菜单树选择时是否关联显示
dept_check_strictly tinyint(1) DEFAULT 1 部门树选择时是否关联显示
status char(1) NOT NULL 角色状态0正常、1停用
del_flag char(1) DEFAULT '0' 删除标志0存在、2删除
create_by varchar(64) DEFAULT '' 创建者
create_time datetime NULLABLE 创建时间
update_by varchar(64) DEFAULT '' 更新者
update_time datetime NULLABLE 更新时间
remark varchar(500) NULLABLE 备注

示例中定义了 Supervisor、Administrator 及 User 角色。


3.15 角色与部门关联表 - sys_role_dept

用于关联角色和部门,控制数据权限。

列名 数据类型 约束 说明
role_id bigint(20) PRIMARY KEY (联合主键) 角色 ID
dept_id bigint(20) PRIMARY KEY (联合主键) 部门 ID

3.16 角色与菜单关联表 - sys_role_menu

用于关联角色与菜单,实现系统权限的控制。

列名 数据类型 约束 说明
role_id bigint(20) PRIMARY KEY (联合主键) 角色 ID
menu_id bigint(20) PRIMARY KEY (联合主键) 菜单 ID

示例中,角色 2Administrator关联了大量菜单权限。


4. 关系与数据流

  • 用户-角色:通过 sys_user_role 表实现,一个用户可以拥有多个角色。
  • 角色-菜单:通过 sys_role_menu 表关联角色与菜单,实现权限分配。
  • 用户-岗位:通过 sys_user_post 实现,方便对岗位信息管理。
  • 角色-部门:通过 sys_role_dept 表实现角色对部门数据的访问控制。
  • 数据字典sys_dict_type 定义字典类型,sys_dict_data 存储各字典项,系统中各模块均可引用以保证数据一致性。

5. 索引及性能优化

各表的主键和部分常用查询字段(如 statusaccess_timeuser_name 等)均建立索引,确保数据查询速度满足系统需求。


6. 其他说明

  • 表中的日期时间字段(如 create_timeupdate_time 等)建议统一使用 UTC+0 或转换为本地时区。
  • 部分字段如密码应进行加密存储。
  • 删除标志和状态字段为业务逻辑提供支持,后续可以根据需要进行索引和分区优化。

以上文档基于 SQL 脚本提取,适用于当前项目数据库设计说明。你可以进一步利用 ER 图工具生成图形化数据模型图,并补充业务流程说明。