跳到主要内容

数据库设计

核心概念:文档中心 | 数据库设计 | 概览

本模块的数据库设计围绕“规则”这一核心实体展开,关联了MAC资源、渠道资源以及具体的业务实体。


核心概念:文档中心 | 数据库设计 | 数据库关系图 (规则引擎)

数据库关系图 (规则引擎)

以下是规则引擎的数据库ER图:

Mermaid Diagram Code:

erDiagram
    RULE_LITEFLOW_CHAIN ||--o{ RULE_BUSINESS : "1:N (规则绑定业务)"
    RULE_LITEFLOW_CHAIN ||--o{ RULE_MAC_ITEM : "1:N (规则绑定MAC)"
    RULE_LITEFLOW_CHAIN ||--o{ RULE_CHANNEL_ITEM : "1:N (规则绑定渠道)"
    RULE_LITEFLOW_CHAIN ||--o{ RULE_REGION_ITEM : "1:N (规则绑定地区)"
    RULE_LITEFLOW_CHAIN ||--o{ RULE_CHAIN_MAC_RESOURCE_ITEM : "1:N (规则绑定MAC资源)"
    RULE_MAC_RESOURCE ||--o{ RULE_CHAIN_MAC_RESOURCE_ITEM : "1:N (MAC资源被规则引用)"
    RULE_MAC_RESOURCE ||--o{ RULE_MAC_RESOURCE_ITEM : "1:N (MAC资源包含MAC)"

    RULE_LITEFLOW_CHAIN {
        bigint id PK "规则ID"
        string name "规则名称"
        string el_data "EL表达式"
        tinyint scope "使用范围"
    }
    RULE_BUSINESS {
        bigint id PK
        bigint liteflow_chain_id FK "规则ID"
        bigint business_id "业务ID"
        tinyint business_type "业务类型"
    }
    RULE_MAC_RESOURCE {
        bigint id PK "资源ID"
        string name "资源名称"
    }
    RULE_MAC_ITEM {
        bigint id PK
        bigint liteflow_chain_id FK
        string mac "MAC地址"
    }

核心概念:文档中心 | 数据库设计 | 1.1 MAC资源表 (rule_mac_resource)

1.1 MAC资源表 (rule_mac_resource)

用于管理一组MAC地址的集合,便于批量复用。

字段名类型说明
idbigint主键ID
namevarchar资源名称
remarkvarchar备注

核心概念:文档中心 | 数据库设计 | 1.2 MAC资源关联MAC表 (rule_mac_resource_item)

1.2 MAC资源关联MAC表 (rule_mac_resource_item)

记录MAC资源包中包含的具体MAC地址。数据量较大,采用分区表设计,按 mac_resource_id+mac 分区。

字段名类型说明
idbigint主键ID
mac_resource_idbigintMAC资源表ID
macvarcharMAC地址
partition_indexint表分区号
validtinyint数据有效性

核心概念:文档中心 | 数据库设计 | 1.3 规则定义表 (rule_liteflow_chain)

1.3 规则定义表 (rule_liteflow_chain)

规则引擎的核心配置表,定义了规则的基本属性、匹配逻辑(LiteFlow EL表达式)以及适用范围。

字段名类型说明
idbigint主键ID
namevarchar规则名称
application_namevarchar应用名称 (LiteFlow)
chain_namevarchar链路名称 (LiteFlow)
el_datatextEL表达式数据 (LiteFlow规则EL表达式)
routevarchar路由信息 (LiteFlow)
namespacevarchar命名空间 (LiteFlow)
enabletinyint是否启用 (1-启用, 0-禁用)(LiteFlow)
has_mactinyint是否有mac,0-否,1-是
scopetinyint使用范围:
0-通用规则
1-特定业务类型多条业务
2-不限业务类型的单条业务
3-特定业务类型的单条业务
business_typetinyint业务类型 (如:任务推送、launcher广告配置、黑名单、uota升级等)
need_approvetinyint变更是否需要审批 (特定业务如任务推送、Launcher配置固定为是)
device_base_scopetinyint基础设备范围:
0-全匹配
1-限制mac
2-限制渠道
3-同时限制mac和渠道
draftjson草稿数据 (用于审批流程中的临时数据存储)
validtinyint数据有效性

business_type在代码中建立枚举类,增加是否需要审批的属性


核心概念:文档中心 | 数据库设计 | 1.4 规则关联业务表 (rule_business)

1.4 规则关联业务表 (rule_business)

建立规则与具体业务数据的绑定关系。一个规则可以被多个业务使用(视scope定义而定)。

字段名类型说明
idbigint主键ID
liteflow_chain_idbigint规则ID
business_idvarchar/bigint业务ID (如广告ID、任务ID)
business_typetinyint业务类型 (如:任务推送、launcher广告配置、黑名单、uota升级等)
validtinyint数据有效性

核心概念:文档中心 | 数据库设计 | 1.5 规则关联MAC表 (rule_mac_item)

1.5 规则关联MAC表 (rule_mac_item)

规则直接绑定的特定MAC地址列表。按 liteflow_chain_id+mac 分区。

字段名类型说明
idbigint主键ID
liteflow_chain_idbigint规则ID
macvarcharMAC地址
partition_indexint表分区号
validtinyint数据有效性

核心概念:文档中心 | 数据库设计 | 1.6 规则关联渠道表 (rule_channel_item)

1.6 规则关联渠道表 (rule_channel_item)

规则生效的渠道范围。

字段名类型说明
idbigint主键ID
liteflow_chain_idbigint规则ID
channel_idbigint渠道ID
validtinyint数据有效性

核心概念:文档中心 | 数据库设计 | 1.7 规则字段定义表 (rule_field_definition)

1.7 规则字段定义表 (rule_field_definition)

定义了规则引擎可以读取和比较的设备字段。系统启动时,会预置以下字段配置(数据来源于 base_device 设备表结构):

字段名类型说明
idbigint主键ID
namevarchar字段名 (对应设备表字段,如 mac, cpu)
alias_namevarchar字段别名 (用于前端显示,如 MAC地址)
typetinyint字段类型 (0-string, 1-number, 2-time)
available_operatorsjson可用比较规则 (JSON数组)

核心概念:文档中心 | 数据库设计 | 1.7.1 系统预置字段列表 (System Preset Fields)

1.7.1 系统预置字段列表 (System Preset Fields)

以下是 rule_field_definition 表中的初始数据:

namealias_nametypeavailable_operators
id主键ID1["eqCmp", "gtCmp", "ltCmp", "gteCmp", "lteCmp", "inCmp", "notInCmp"]
macMAC地址0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
status状态1["eqCmp", "inCmp", "notInCmp"]
certification入网认证码0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
user_id所属用户1["eqCmp", "inCmp", "notInCmp"]
company_id所属公司1["eqCmp", "inCmp", "notInCmp"]
channel_id渠道ID1["eqCmp", "gtCmp", "ltCmp", "gteCmp", "lteCmp", "inCmp", "notInCmp"]
device_model设备型号0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
model_id型号ID1["eqCmp", "gtCmp", "ltCmp", "gteCmp", "lteCmp", "inCmp", "notInCmp"]
order_number订单号0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
sdk_version_nameSDK版本0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
remarks备注0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
activation_time激活时间2["gtCmp", "ltCmp", "gteCmp", "lteCmp"]
name设备名称0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
brand品牌0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
system_version系统版本0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
build构建版本0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
ddr内存0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
cpuCPU型号0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
device_ip设备IP0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
region_id地区ID1["eqCmp", "gtCmp", "ltCmp", "gteCmp", "lteCmp", "inCmp", "notInCmp"]
ip_addressIP地址0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
uiLauncher包名0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
serial_number编号0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
create_time创建时间2["gtCmp", "ltCmp", "gteCmp", "lteCmp"]
update_time更新时间2["gtCmp", "ltCmp", "gteCmp", "lteCmp"]
deleted是否删除1["eqCmp", "inCmp", "notInCmp"]
updater更新者0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
creator创建者0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
tenant_id租户编号1["eqCmp", "inCmp", "notInCmp"]
real_ddr真实DDR0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
real_flash真实Flash0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
production_order生产订单0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
master_model主控型号0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]
pcb_modelPCB主板型号0["eqCmp", "inCmp", "notInCmp", "containCmp", "notContainsCmp"]

核心概念:文档中心 | 数据库设计 | 1.8 业务数量限制表 (business_limit)

1.8 业务数量限制表 (business_limit)

字段名类型说明
idbigint主键ID
business_typetinyint业务类型 (如:任务推送、launcher广告配置、黑名单、uota升级等)
business_idbigint业务ID
limit_countint业务数量限制
current_countint当前已操作数量

该表用于存储业务数量限制,如某个推送任务最多推送多少台设备就停止;黑名单最多卸载多少设备就停止;launcher最多推送成功多少就停止。


核心概念:文档中心 | 数据库设计 | 1.9 规则关联地区表 (rule_region_item)

1.9 规则关联地区表 (rule_region_item)

字段名类型说明
idbigint主键ID
liteflow_chain_idbigint规则ID
region_idbigint地区ID
validtinyint数据有效性

核心概念:文档中心 | 数据库设计 | 1.10 规则关联mac资源表 (rule_chain_mac_resource_item)

1.10 规则关联mac资源表 (rule_chain_mac_resource_item)

字段名类型说明
idbigint主键ID
liteflow_chain_idbigint规则ID
mac_resource_idbigintmac资源表ID
validtinyint数据有效性
AI 问答