跳到主要内容

infra 数据库设计

本服务负责基础配置、代码生成元数据、文件与 CDN、API 日志及服务器监控。当前源码覆盖 18 张 MySQL 表和 1 个 TDengine 超级表模型;测试库实测 21 张 MySQL 表、1 个 TDengine 超级表和 8 张子表。源码预期的 MySQL 字段全部存在;额外表及额外列已单列,不能直接认定为废弃对象。

核验日期:2026-09-18。MySQL 采集时间为 20:51:05(Asia/Shanghai),TDengine 为 20:51:28。仅统一采集元数据,不读取业务记录、不运行 Spring、构建或测试。结构存在不能证明当前服务成功读写或功能启用。

阅读入口​

数据源与租户边界​

代码入口运行时数据源键提供配置指向证据
普通 infra MyBatis Mapper默认 masterdatasource.infra → ik_yudao_infradoc/数据库设计管理/nacos/infra-server.yaml:8、datasource.yaml:48
ServerMonitorDataMappertdServerMonitordatasource.td_server_monitor → server_monitorinfra-server.yaml:16、datasource.yaml:375、ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/tdengine/ServerMonitorDataMapper.java:20
Redis 工具及监控锁共享 Redis 配置键空间见 Redis 页infra API Redis DAO / ServerMonitorJob
阿里云 SLS 查询yudao.infra.slsproject / log-store 由配置提供SlsLogServiceImpl:76/228

当前所用 Nacos 文件是用户提供的测试环境配置副本,不声称是正在运行进程的已加载配置。infra 主模块未发现 Elasticsearch 索引实体或直接 ES DAO;共享配置中出现 ES 不足以证明本服务拥有 ES 索引。

MySQL DO 除下载记录外均继承 BaseDO,不是 TenantBaseDO。实库仍有 10 张对应表含 tenant_id:两类日志、CDN、分片上传、服务器配置及五张演示表。租户插件通过 TenantContextHolder 获取租户并按 ignore-tables 配置控制 SQL,而不是只能依赖实体属性;证据为 ik_project/yudao-cloud/yudao-framework/yudao-spring-boot-starter-biz-tenant/src/main/java/cn/iocoder/yudao/framework/tenant/core/db/TenantDatabaseInterceptor.java:33。因此这些列记录为“框架参与的额外物理列”,不判为错误,也不补造实体字段。

本配置忽略租户的表包括 codegen 两表、config、file_config、file、file_content、data_source_config、file_download_request,以及库中 job/job_log;server_monitor 另有 Mapper 拦截忽略注解。最终以运行时上下文和加载配置为准。

继承字段与引用约定​

BaseDO 字段Java 类型映射行为
create_timeLocalDateTime创建填充
update_timeLocalDateTime创建/更新填充
creatorString创建者标识,显式 JDBC VARCHAR
updaterString更新者标识,显式 JDBC VARCHAR
deletedBoolean@TableLogic 软删除

证据:ik_project/yudao-cloud/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/dataobject/BaseDO.java:30。各业务页重复列出全部继承列便于独立阅读。Java 类型与数据库物理类型分列管理,长度、默认值、可空性以实测字典为准。

完整源码对象清单​

对象引擎业务页源码证据
infra_codegen_columnMySQL代码生成元数据ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java:30
infra_codegen_tableMySQL代码生成元数据ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java:32
infra_configMySQL参数与数据源配置ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java:28
infra_data_source_configMySQL参数与数据源配置ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java:28
yudao_demo01_contactMySQL代码生成演示表ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java:30
yudao_demo02_categoryMySQL代码生成演示表ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java:30
yudao_demo03_courseMySQL代码生成演示表ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java:28
yudao_demo03_gradeMySQL代码生成演示表ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java:28
yudao_demo03_studentMySQL代码生成演示表ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java:30
infra_file_configMySQL文件、CDN 与传输记录ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java:40
infra_file_contentMySQL文件、CDN 与传输记录ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java:32
infra_fileMySQL文件、CDN 与传输记录ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java:32
infra_file_download_requestMySQL文件、CDN 与传输记录ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDownloadRequestDO.java:27
infra_cdn_configMySQL文件、CDN 与传输记录ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/InfraCdnConfigDO.java:29
infra_file_part_uploadMySQL文件、CDN 与传输记录ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/filepart/FilePartUploadDO.java:30
infra_api_access_logMySQLAPI 访问与异常日志ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java:46
infra_api_error_logMySQLAPI 访问与异常日志ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java:37
infra_server_monitor_configMySQL服务器监控配置与时序数据ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/servermonitor/InfraServerMonitorConfigDO.java:28
server_monitorTDengine服务器监控配置与时序数据ik_project/yudao-cloud/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/servermonitor/ServerMonitorDataDO.java:34

源码范围为 yudao-module-infra-biz/src/main,不将 src/test 生成模板当实际持久化对象。常量 serialVersionUID、STABLE_NAME、OUTSIDE_CONFIG_ID 不落库;监控 tbname 为子表定位信息,响应 VO 的计算字段不作为物理列。

实库额外对象与差异​

对象或范围实测与源码对照处理结论
infra_job、infra_job_log、infra_region实库存在;当前 infra/src/main 未找到对应 DO/Mapper保留在实测字典;归属和当前使用情况未核验,不能判为可删除
infra_file_config.cdn_config实库有列,FileConfigDO 未映射记录未映射列;当前 CDN 源码使用独立配置与 cdn_config_id
10 张表的 tenant_id物理列存在,DO 未声明按上文租户插件与 ignore-tables 解释;逐表可见实测字典
infra_file.classification当前 int不沿用旧环境 tinyint 的历史结论
infra_file.original_md5char(32),可空,idx_original_md5当前源码字段与物理结构均存在
infra_api_access_log.file_idsjson,可空JacksonTypeHandler 的文件 ID 数组;与附件的逻辑关联
server_monitor47 普通列 + server_name TAG,8 子表指标字段全部对应;tbname 不是普通数据列
监控写入及调度Job 调 BaseMapper.insert,@Scheduled 注释;未找到本模块显式建子表 SQL结构采集不能证明自动建表或当前采集运行,保留运行核验项

实库约束读取结果:21 表均有主键,infra_server_monitor_config 额外有 uk_name;未返回物理外键约束。各页箭头均表示逻辑关联。每张表的二级索引已在业务页摘要及实测字典列出,查询过滤条件不等同于索引。

本轮没有连接失败项。未核验项为运行时有效配置、业务写入、Redis 实际键/TTL、SLS 索引、文件存储本体,以及无源码映射三表的现行归属。

用户文档
AI 助手
Agent 列表
请选择一个 Agent 开始对话
AI 问答