跳转至

数据字典

概述

本文档详细描述 DraARL 数据库的所有表结构、字段定义和索引信息。

数据库类型:MySQL 5.7+ / MariaDB 10.3+

字符集:utf8mb4

排序规则:utf8mb4_unicode_ci


用户表 (users)

用户表存储所有注册用户的信息。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
name VARCHAR(255) NO - 用户名(唯一)
email VARCHAR(255) NO - 邮箱地址(唯一)
email_verified TINYINT(1) NO 0 邮箱是否已验证
callsign VARCHAR(32) YES NULL 业余电台呼号(唯一)
gird VARCHAR(255) YES - 网格定位(遗留字段)
phone VARCHAR(32) YES - 手机号
password VARCHAR(255) NO - 密码(bcrypt哈希)
birthday VARCHAR(32) YES - 生日
sex TINYINT NO 0 性别(0=未知, 1=男, 2=女)
avatar VARCHAR(512) YES - 头像URL
address VARCHAR(512) YES - 地址
roles VARCHAR(32) NO 'user' 角色(user/admin)
introduction TEXT YES - 个人简介
alarm_msg TINYINT(1) NO 0 是否接收告警消息
status TINYINT NO 1 账号状态
approval_status TINYINT NO 0 审核状态(0=待审核, 1=已通过, 2=已拒绝)
reviewer_id INT YES NULL 审核人ID
review_note TEXT YES - 审核备注
review_time DATETIME YES NULL 审核时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间(自动)
last_login_time DATETIME YES NULL 最后登录时间
login_err_times INT NO 0 登录错误次数
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间(自动)
openid VARCHAR(255) YES - 微信OpenID
nickname VARCHAR(255) YES - 昵称
pid VARCHAR(255) YES - PID标识
last_login_ip VARCHAR(64) YES - 最后登录IP
dmrid INT NO 0 DMR ID
mdcid VARCHAR(255) NO '' MDC ID
device_password VARCHAR(255) YES - 设备准入密码(AES可逆密文)

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
uk_name 唯一 name 用户名唯一
uk_email 唯一 email 邮箱唯一
uk_callsign 唯一 callsign 呼号唯一
idx_phone 普通 phone 手机号索引
idx_openid 普通 openid 微信OpenID索引

外键关系

被以下表引用(级联删除): - devices.owner_id - group_members.user_id - operator_certs.user_id - logbooks.user_id - user_radio_presets.user_id - user_device_preferences.user_id


设备表 (devices)

设备表存储所有注册设备的信息。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
name VARCHAR(255) YES - 设备名称
dmrid BIGINT YES - DMR ID
ssid TINYINT UNSIGNED NO - 设备子号
owner_id INT NO - 所有者用户ID
qth VARCHAR(255) YES - 位置信息
last_online_ip VARCHAR(64) YES - 最近上线IP
dev_model INT NO 0 设备型号
group_id INT YES NULL 所属群组ID
status TINYINT NO 1 设备状态
is_certed TINYINT(1) NO 0 是否已认证
priority INT NO 100 优先级
disable_send TINYINT(1) NO 0 设备级禁发
disable_recv TINYINT(1) NO 0 设备级禁收
is_online TINYINT(1) NO 0 是否在线
online_time DATETIME YES - 上线时间
note TEXT YES - 备注
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
idx_owner_ssid 唯一 owner_id, ssid 用户下SSID唯一
idx_dmrid 普通 dmrid DMR ID索引
idx_group_id 普通 group_id 群组ID索引
idx_group_online 普通 group_id, is_online 群组在线设备索引

外键关系

  • owner_id → users.id (CASCADE)
  • group_id → public_groups.id (SET NULL)

设备型号枚举

说明
0 未知设备
1 ESP32 链路盒子(1W 射频版)
2 ESP32 链路盒子(无射频版)
100 微信小程序
101 Android 客户端
102 iOS 客户端
103 Windows 客户端
104 macOS 客户端
105 浏览器客户端
106 互联设备(历史)
107 ESP32 链路台/手咪(历史)
236 南山对讲软件桥接器
237 涛涛对讲软件桥接器
238 本视对讲(HT)软件桥接器
239 NRL2 系统软件桥接器

群组表 (public_groups)

群组表存储所有群组的信息。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
name VARCHAR(255) NO - 群组名称
type INT NO 0 类型(0=普通, 1=公开, 2=私有)
call_sign VARCHAR(255) YES - 群组呼号
password VARCHAR(255) YES - 私有群组密码
allow_callsign_ssid TEXT YES - 允许的呼号SSID列表
ower_id INT YES - 所有者用户ID
master_server INT YES - 主服务器ID
slave_server INT YES - 从服务器ID
status INT NO 1 状态(1=启用)
is_virtual TINYINT(1) NO 0 是否为虚拟互联组
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间
note TEXT YES - 备注

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
idx_ower_id 普通 ower_id 所有者索引

群组类型枚举

说明
0 普通群组
1 公开群组
2 私有群组

群组互联表存储虚拟互联组与目标群组的关联关系。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
link_group_id INT NO - 互联组ID
target_group_id INT NO - 目标群组ID
created_at DATETIME NO CURRENT_TIMESTAMP 创建时间
updated_at DATETIME NO CURRENT_TIMESTAMP 更新时间

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
uk_link_target 唯一 link_group_id, target_group_id 互联关系唯一

外键关系

  • link_group_id → public_groups.id (CASCADE)
  • target_group_id → public_groups.id (CASCADE)

群组成员表 (group_members)

群组成员表存储用户与群组的关联关系。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
group_id INT NO - 群组ID
user_id INT NO - 用户ID
is_verified TINYINT(1) NO 0 是否已验证密码
join_time DATETIME YES - 加入时间
last_verify DATETIME YES - 最后验证时间
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
uk_group_user 唯一 group_id, user_id 群组用户唯一

外键关系

  • group_id → public_groups.id (CASCADE)
  • user_id → users.id (CASCADE)

通信记录表 (comm_records)

通信记录表存储所有语音通信的记录。

字段定义

字段名 类型 可空 默认值 说明
id UINT NO AUTO_INCREMENT 主键
device_id UINT NO 0 发送设备ID(0=幽灵设备)
device_ssid TINYINT UNSIGNED NO 0 设备SSID
group_id UINT YES NULL 群组ID
user_id UINT YES NULL 用户ID
start_time DATETIME NO - 通信开始时间
end_time DATETIME YES - 通信结束时间
duration_ms INT NO 0 通信时长(毫秒)
audio_path VARCHAR(255) YES - MinIO音频文件路径
audio_size BIGINT NO 0 音频文件大小(字节)
status INT NO 0 状态(0=录制中, 1=待上传, 2=已完成, 3=上传失败)
created_at DATETIME NO CURRENT_TIMESTAMP 创建时间

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
idx_device_id 普通 device_id 设备ID索引
idx_group_id 普通 group_id 群组ID索引
idx_user_id 普通 user_id 用户ID索引
idx_group_start 普通 group_id, start_time 群组时间索引
idx_user_start 普通 user_id, start_time 用户时间索引
idx_status 普通 status 状态索引

服务器表 (servers)

服务器表存储服务器管理信息。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
name VARCHAR(255) NO - 服务器名称
server_type INT NO 0 服务器类型
join_key VARCHAR(255) YES - 加入密钥
ip_addr VARCHAR(64) YES - IP地址
udp_port INT YES - UDP端口
ower_id INT YES - 所有者用户ID
is_online TINYINT(1) NO 0 是否在线
status INT NO 1 状态
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间
note TEXT YES - 备注

中继台表 (relay)

中继台表存储中继台信息。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
name VARCHAR(255) NO - 中继台名称
up_freq VARCHAR(32) YES - 上行频率
down_freq VARCHAR(32) YES - 下行频率
send_ctss VARCHAR(32) YES - 发射亚音
recive_ctss VARCHAR(32) YES - 接收亚音
ower_callsign VARCHAR(32) YES - 所有者呼号
location VARCHAR(255) YES - 位置
latitude DOUBLE YES - 纬度
longitude DOUBLE YES - 经度
status INT NO 1 状态
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间
note TEXT YES - 备注

操作日志表 (operator_log)

操作日志表记录系统操作日志。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
timestamp DATETIME NO CURRENT_TIMESTAMP 时间戳
content TEXT NO - 日志内容
event_type VARCHAR(64) NO - 事件类型
operator VARCHAR(255) YES - 操作者
operator_id INT YES - 操作者ID

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
idx_event_type 普通 event_type 事件类型索引
idx_operator_id 普通 operator_id 操作者索引

操作证表 (operator_certs)

操作证表存储用户提交的操作证信息。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
user_id INT NO - 用户ID
callsign VARCHAR(32) NO - 申请呼号
file_name VARCHAR(255) YES - 文件名
minio_path VARCHAR(512) YES - MinIO路径
status INT NO 0 状态(0=待审, 1=通过, 2=拒绝)
reviewer_id INT YES NULL 审核人ID
review_note TEXT YES - 审核备注
review_time DATETIME YES NULL 审核时间
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

外键关系

  • user_id → users.id (CASCADE)
  • reviewer_id → users.id (SET NULL)

站点配置表 (site_configs)

站点配置表存储系统配置项。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
config_key VARCHAR(255) NO - 配置键(唯一)
config_value TEXT YES - 配置值
category VARCHAR(64) NO - 分类(icp/system/aprs/openai/smtp)
description VARCHAR(512) YES - 描述

索引

索引名 类型 字段 说明
PRIMARY 主键 id 主键索引
uk_config_key 唯一 config_key 配置键唯一
idx_category 普通 category 分类索引

配置分类

分类 说明 示例键
icp ICP备案 icp_number
system 系统信息 site_name, site_logo, site_favicon
aprs APRS配置 aprs_enabled, aprs_server, aprs_port
openai AI配置 openai_base_url, openai_api_key
smtp 邮件配置 smtp_host, smtp_port, smtp_password
registration 注册配置 require_email_verification
comm 通信设置 comm_record_enabled, comm_record_days

资源文件表 (assets)

资源文件表存储资源中心的文件和文件夹。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
parent_id INT YES NULL 父文件夹ID
name VARCHAR(255) NO - 名称
type VARCHAR(32) NO - 类型(folder/file)
path VARCHAR(512) YES - MinIO路径
size BIGINT NO 0 文件大小
mime_type VARCHAR(128) YES - MIME类型
remark TEXT YES - 备注
sort_order INT NO 0 排序顺序
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

外键关系

  • parent_id → assets.id (CASCADE)

设备配置表 (device_configs)

设备配置表存储设备的TLV配置数据。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
device_id INT NO - 设备ID
config_key VARCHAR(64) NO - 配置键
config_value VARCHAR(255) NO - 配置值
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

外键关系

  • device_id → devices.id (CASCADE)

配置键说明

说明 示例值
rx_freq 接收频率(Hz) 439500000
tx_freq 发射频率(Hz) 431500000
rx_ctcss 接收亚音(Hz) 88.5
tx_ctcss 发射亚音(Hz) 88.5
sql_level 静噪等级(0-8) 5
power_level 功率等级 3
tx_bandwidth 发射带宽 2
rx_tone_mode 接收亚音类型 CTCSS
rx_tone_value 接收亚音值 88.5
tx_tone_mode 发射亚音类型 CTCSS
tx_tone_value 发射亚音值 88.5
rf_guard_enabled 射频保护开关 1
rf_guard_single_tx_limit_s 单次发射上限(秒) 30
rf_guard_window_s 统计窗口(秒) 300
rf_guard_max_tx_in_window_s 窗口内累计发射上限(秒) 60

通联日志表 (logbooks)

通联日志表存储业余无线电QSO记录。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
user_id INT NO - 用户ID
my_callsign VARCHAR(32) NO - 我方呼号
time_utc DATETIME NO - UTC时间
tx_frequency VARCHAR(32) YES - 发射频率
rx_frequency VARCHAR(32) YES - 接收频率
cq_zone INT YES - CQ分区
itu_zone INT YES - ITU分区
mode VARCHAR(32) YES - 通信模式
callsign VARCHAR(32) NO - 对方呼号
their_rst VARCHAR(16) YES - 对方信号报告
my_rst VARCHAR(16) YES - 我方信号报告
their_power VARCHAR(16) YES - 对方功率
my_power VARCHAR(16) YES - 我方功率
their_qth VARCHAR(255) YES - 对方QTH
my_qth VARCHAR(255) YES - 我方QTH
their_radio VARCHAR(128) YES - 对方电台
my_radio VARCHAR(128) YES - 我方电台
their_antenna VARCHAR(128) YES - 对方天线
my_antenna VARCHAR(128) YES - 我方天线
notes TEXT YES - 备注
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

外键关系

  • user_id → users.id (CASCADE)

电台预设表 (user_radio_presets)

电台预设表存储用户常用的电台配置。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
user_id INT NO - 用户ID
name VARCHAR(128) NO - 预设名称
radio VARCHAR(128) YES - 电台型号
antenna VARCHAR(128) YES - 天线型号
power VARCHAR(32) YES - 功率
qth VARCHAR(255) YES - QTH
sort_order INT NO 0 排序顺序
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

外键关系

  • user_id → users.id (CASCADE)

设备偏好表 (user_device_preferences)

设备偏好表存储用户的设备偏好设置。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
user_id INT NO - 用户ID
dev_model INT NO - 设备型号
last_group_id INT YES - 上次使用的群组ID
create_time DATETIME NO CURRENT_TIMESTAMP 创建时间
update_time DATETIME NO CURRENT_TIMESTAMP 更新时间

外键关系

  • user_id → users.id (CASCADE)

固件发布表 (firmware_releases)

固件发布表存储设备固件版本信息。

字段定义

字段名 类型 可空 默认值 说明
id INT NO AUTO_INCREMENT 主键
dev_model INT NO - 设备型号
version VARCHAR(32) NO - 版本号(semver)
changelog TEXT YES - 更新日志
file_name VARCHAR(255) NO - 文件名
minio_path VARCHAR(512) NO - MinIO路径
file_size BIGINT NO 0 文件大小
file_hash VARCHAR(128) NO - SHA-256哈希
is_latest TINYINT(1) NO 0 是否最新版本
created_by INT YES - 上传者ID
created_at DATETIME NO CURRENT_TIMESTAMP 创建时间

ER 关系图

ER关系图