Asone 开发者文档Asone 开发者文档
  • 项目架构
  • 技术栈
  • 目录结构
  • 本地启动
  • 新增功能
  • 开发规范
  • 数据库
  • 图表语法
  • 部署
  • 文档同步规则
  • 相关文档
  • 项目架构
  • 技术栈
  • 目录结构
  • 本地启动
  • 新增功能
  • 开发规范
  • 数据库
  • 图表语法
  • 部署
  • 文档同步规则
  • 相关文档
  • 数据库

数据库

唯一来源

全量表结构集中在一个文件:

  • 仓库路径:docs/developer-docs/docs/public/1-ddl.sql
  • 站点下载:/1-ddl.sql(构建时从 public/ 原样拷到站点根)

项目没有引入自动迁移工具(无 Flyway / Liquibase),DDL 由人工在目标库执行。因此:

  • 表结构变更直接修改全量 DDL,保持它始终是「当前库应有的完整结构」。
  • 需要增量脚本(补列、补索引、数据修复)时,同样放在 docs/developer-docs/docs/public/ 下供人工评审与执行,不得由代码、测试或调试链路自动运行。
  • 依赖新列的后端版本上线前,DDL 必须先在目标库执行,否则查询因缺列失败。

库与引擎约定

项约定
数据库asone,utf8mb4
排序规则utf8mb4_0900_ai_ci
引擎InnoDB
时间字段created_at / updated_at,DEFAULT CURRENT_TIMESTAMP,updated_at 带 ON UPDATE CURRENT_TIMESTAMP
状态字段status tinyint UNSIGNED,1 启用 / 0 禁用
主键id,业务表多为 int UNSIGNED AUTO_INCREMENT,日志类大表用 bigint
索引命名idx_<表名>_<列>,写在表定义的 KEY 子句
FlowableACT_* 表由引擎启动时自动创建(flowable.database-schema-update=true),数据库账号需要 DDL 权限

表清单(42 张)

图 1 · 表数量按域分布
图 2 · 核心表关系

广告投放域 advertisement_*(10 张,模块 asone-module-advertisement)

表说明
advertisement_advertiser广告主表(上游广告主,与本系统管理员 system_admin 无关联)
advertisement_channel广告渠道表
advertisement_click_log广告点击日志表
advertisement_customer_platform广告客户与广告平台绑定,一个客户只绑定一个平台;客户按绑定平台过滤广告数据,管理员不受限
advertisement_data_report广告数据报表
advertisement_domain广告域名表
advertisement_offer广告 Offer 表
advertisement_offer_channelOffer 渠道关联表
advertisement_postback_log广告回调日志表
advertisement_product广告产品表

渠道报表域 report_channel_*(7 张,模块 asone-module-channel-report)

表说明
report_channel_daily_report每日报告表
report_channel_country_report按国家汇总
report_channel_unit_report按广告单元汇总
report_channel_data_report详细报表
report_channel_customer_domain广告客户与推广域名关联及收益扣率表
report_channel_customer_source广告客户数据源授权表,与产品维度共同决定客户可见数据范围,命中产品关联或数据源授权任一即可见对应报表
report_channel_report_sync_log报告同步记录表

IAA 变现域 iaa_*(2 张,模块 asone-module-iaa)

表说明
iaa_productIAA 产品表
iaa_roasIAA 产品 ROAS 数据(花费、广告收益等按 report_date 记录)

系统与共享内核 system_*(23 张,模块 asone-server-system)

表说明
system_admin后台管理员表(系统用户)
system_admin_role管理员角色关联表
system_role角色表
system_role_resource角色资源关联表
system_resource系统资源表(菜单与权限动作),含 role_scope、icon
system_admin_identity管理员第三方身份绑定
system_identity_app第三方身份登录应用配置
system_admin_login_log管理员登录记录
system_admin_mfa管理员两步认证绑定
system_admin_mfa_device管理员两步认证信任设备
system_admin_favorite管理员收藏表
system_admin_recent_menu管理员最近访问菜单表
system_api_key管理员 API Key 表
system_approval_application审批申请单
system_approval_record审批操作留痕
system_approval_flow_definition审批流程定义
system_approval_field_meta审批条件分支字段元数据
system_notification系统通知表
system_notification_preference管理员通知偏好表
system_export_task导出任务表
system_operation_log系统操作审计日志表
system_config系统技术配置表,按 config_key 取原始值
system_setting系统基本设置表(站点品牌与 SEO 等后台可编辑项)

访问方式与约束

  • 访问层是 MyBatis-Plus:Mapper extends BaseMapper<T> 并逐个标注 @Mapper,Service 继承 MyBatis-Plus ServiceImpl<M, E>,复杂查询落 src/main/resources/mapper/*.xml。
  • 实体用 @TableName 显式指定表名,Lombok @Getter/@Setter,不使用 record。
  • 分页只走 PaginationInnerInterceptor(DbType.MYSQL);BlockAttackInnerInterceptor 会拦截无 where 的全表更新与删除。
  • 渠道报表模块对同类报表复用泛型基接口(ChannelReportSummaryMapper<T> / ChannelReportBatchMapper<T>)与实体基类,新增渠道优先继承而不是复制表。

数据库只读

排查问题、验证数据、探索库表结构时只允许只读查询(SELECT / SHOW / DESC / information_schema / 只读 EXPLAIN)。任何 DML、DDL、权限与运维类语句、CALL 不确定是否只读的例程、以及「先写后回滚」的试探方式一律禁止;确实需要写入时,先说明目的、影响的表和行数预估,取得明确同意后执行,且同意仅对本次有效。

初始化本地库

CREATE DATABASE IF NOT EXISTS asone
  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

再把 1-ddl.sql 导入 asone 库(人工执行,Flowable 的 ACT_* 表在应用首次启动时自动补齐)。