Skip to content

RuoYi-Vue-Pro 数据库表设计解析

1. 文档范围

  • 主要依据:sql/mysql/ruoyi-vue-pro.sql 以及各业务模块的 MySQL 增量脚本。
  • 补充依据:memberreport 模块的测试建表脚本,因为它们在仓库里没有独立的主库增量 SQL。
  • 结合代码:优先关联每张表对应的 DO、常见 ServiceImpl,说明表不是孤立存在,而是如何被业务逻辑驱动。
  • 不展开范围:Quartz 调度底层表、MES/IOT 等尚未并入主 MySQL 发布脚本的独立模块表。

2. 先从设计层次看这套库为什么这样拆

2.1 第一层:主体对象

这层表保存“系统里真正长期存在的对象”,例如用户、角色、商品、订单、客户、供应商、流程表单。它们通常是主表,特点是:

  • 有稳定主键 id
  • 会被很多其它表引用。
  • 保存的是“当前有效状态”或“核心主数据”。

2.2 第二层:关系对象

system_user_rolesystem_role_menusystem_user_post 这类表,不是为了多建表,而是为了把多对多关系拆开。否则用户表会出现“角色数组”“岗位数组”这种难维护设计。

2.3 第三层:业务过程对象

像订单、支付、售后、采购、销售、库存流水、回款计划,本质上都在记录“过程”。这类过程型表通常会拆成:

  • 头表:保存一笔业务的汇总状态。
  • 行表:保存逐项明细。
  • 日志/流水表:保存状态迁移、通知重试、审计历史。

2.4 第四层:平台能力对象

infra_、消息模板、OAuth2、文件存储、代码生成、定时任务这一层,不直接产生收入,但它们决定了整套系统是不是“平台型产品”。这也是芋道/RuoYi-Vue-Pro 和简单 CRUD 项目最大的差异之一。

2.5 第五层:租户与审计

很多表都带:

  • tenant_id:多租户隔离。
  • creator/create_time/updater/update_time:审计字段。
  • deleted:逻辑删除。

这说明系统设计目标不是“单公司后台”,而是“可运营、可审计、可 SaaS 化”的企业产品。

3. 模块总览

  • 系统管理:32 张表
  • 基础设施:11 张表
  • 会员:6 张表
  • 商城:49 张表
  • 支付:14 张表
  • CRM:19 张表
  • ERP:33 张表
  • BPM:8 张表
  • 公众号:7 张表
  • AI:9 张表
  • 报表:1 张表
  • 示例:5 张表

系统管理

系统模块是整套后端的身份、组织、权限、租户、消息和审计中心。它把“谁能进系统、能看什么、能做什么、属于哪个组织、动作如何留痕”拆成多张表,是典型的企业后台核心设计。这里最重要的拆分思想是:用户不直接持有所有权限,而是通过部门、岗位、角色、菜单、租户和 OAuth2 会话逐层组合。

表名表类型表结构主要关系代码入口设计作用与拆分目的
system_dept(部门表)树形主表idnameparent_idsortleader_user_idphoneemailstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idparent_id -> 同表主键,形成树结构;tenant_id -> 多租户隔离DeptDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/DeptDO.java);核心服务:DeptServiceImpl组织树主表,用 parent_id 表达层级,并把负责人绑定到用户。
system_dict_data(字典数据表)主表idsortlabelvaluedict_typestatuscolor_typecss_classremarkcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。DictDataDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictDataDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
system_dict_type(字典类型表)主表idnametypestatusremarkcreatorcreate_timeupdaterupdate_timedeleteddeleted_time以业务字段和状态字段为主,弱外键关联为主。DictTypeDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dict/DictTypeDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
system_login_log(系统访问记录)日志表idlog_typetrace_iduser_iduser_typeusernameresultuser_ipuser_agentcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离LoginLogDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/LoginLogDO.java);核心服务:LoginLogServiceImpl登录日志表,记录账号访问、结果、IP、UA。
system_mail_account(邮箱账号表)主表idmailusernamepasswordhostportssl_enablestarttls_enablecreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。MailAccountDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailAccountDO.java);核心服务:MailAccountServiceImpl邮件账号配置表,适合一套系统配置多个发信身份。
system_mail_log(邮件日志表)日志表iduser_iduser_typeto_mailscc_mailsbcc_mailsaccount_idfrom_mailtemplate_idtemplate_codetemplate_nicknametemplate_titletemplate_contenttemplate_paramssend_statussend_timesend_message_idsend_exceptioncreatorcreate_timeupdaterupdate_timedeleteduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);account_id -> system_mail_account.id / erp_account.id(按模块区分)MailLogDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailLogDO.java);核心服务:MailLogServiceImpl / MailSendServiceImpl邮件发送日志表,记录投递对象、模板和结果。
system_mail_template(邮件模版表)模板表idnamecodeaccount_idnicknametitlecontentparamsstatusremarkcreatorcreate_timeupdaterupdate_timedeletedaccount_id -> system_mail_account.id / erp_account.id(按模块区分)MailTemplateDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/mail/MailTemplateDO.java);核心服务:MailTemplateServiceImpl邮件模板表,和账号拆分后可以一份模板复用多个账号。
system_menu(菜单权限表)树形主表idnamepermissiontypesortparent_idpathiconcomponentcomponent_namestatusvisiblekeep_alivealways_showcreatorcreate_timeupdaterupdate_timedeletedparent_id -> 同表主键,形成树结构MenuDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/MenuDO.java);核心服务:MenuServiceImpl / PermissionServiceImpl菜单与按钮权限主表,前端路由、页面按钮、接口权限都从这里映射。
system_notice(通知公告表)主表idtitlecontenttypestatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离NoticeDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notice/NoticeDO.java);核心服务:NoticeServiceImpl公告表,适合后台统一发布通知和公告。
system_notify_message(站内信消息表)主表iduser_iduser_typetemplate_idtemplate_codetemplate_nicknametemplate_contenttemplate_typetemplate_paramsread_statusread_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离NotifyMessageDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyMessageDO.java);核心服务:NotifyMessageServiceImpl / NotifySendServiceImpl站内信消息实例表,表示模板渲染后的最终消息。
system_notify_template(站内信模板表)模板表idnamecodenicknamecontenttypeparamsstatusremarkcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。NotifyTemplateDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/notify/NotifyTemplateDO.java);核心服务:NotifyTemplateServiceImpl站内信模板表,沉淀统一消息内容模型。
system_oauth2_access_token(OAuth2 访问令牌)主表iduser_iduser_typeuser_infoaccess_tokenrefresh_tokenclient_idscopesexpires_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离OAuth2AccessTokenDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2AccessTokenDO.java);核心服务:OAuth2TokenServiceImpl访问令牌落库表,记录当前登录态与 token 元数据。
system_oauth2_approve(OAuth2 批准表)主表iduser_iduser_typeclient_idscopeapprovedexpires_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离OAuth2ApproveDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ApproveDO.java);核心服务:OAuth2ApproveServiceImpl承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
system_oauth2_client(OAuth2 客户端表)主表idclient_idsecretnamelogodescriptionstatusaccess_token_validity_secondsrefresh_token_validity_secondsredirect_urisauthorized_grant_typesscopesauto_approve_scopesauthoritiesresource_idsadditional_informationcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。OAuth2ClientDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2ClientDO.java);核心服务:OAuth2ClientServiceImplOAuth2 客户端配置表,支撑第三方系统接入。
system_oauth2_code(OAuth2 授权码表)主表iduser_iduser_typecodeclient_idscopesexpires_timeredirect_uristatecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离OAuth2CodeDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2CodeDO.java);核心服务:OAuth2CodeServiceImpl承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
system_oauth2_refresh_token(OAuth2 刷新令牌)主表iduser_idrefresh_tokenuser_typeclient_idscopesexpires_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离OAuth2RefreshTokenDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/oauth2/OAuth2RefreshTokenDO.java);核心服务:OAuth2TokenServiceImpl刷新令牌表,用来延长会话而不重复登录。
system_operate_log(操作日志记录 V2 版本)日志表idtrace_iduser_iduser_typetypesub_typebiz_idactionsuccessextrarequest_methodrequest_urluser_ipuser_agentcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离OperateLogDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogDO.java);核心服务:OperateLogServiceImpl操作日志表,用于审计关键业务操作。
system_post(岗位信息表)主表idcodenamesortstatusremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离PostDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/PostDO.java);核心服务:PostServiceImpl岗位主数据,适合做职责归类,而不是直接替代角色。
system_role(角色信息表)主表idnamecodesortdata_scopedata_scope_dept_idsstatustyperemarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离RoleDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleDO.java);核心服务:RoleServiceImpl / PermissionServiceImpl角色主表,既表达功能权限,也承载数据权限范围。
system_role_menu(角色和菜单关联表)关联表idrole_idmenu_idcreatorcreate_timeupdaterupdate_timedeletedtenant_idrole_id -> system_role.id;menu_id -> system_menu.id;tenant_id -> 多租户隔离RoleMenuDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/RoleMenuDO.java);核心服务:PermissionServiceImpl角色与菜单权限的多对多关联表,是权限收敛到角色的关键中间层。
system_sms_channel(短信渠道)主表idsignaturecodestatusremarkapi_keyapi_secretcallback_urlcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。SmsChannelDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsChannelDO.java);核心服务:SmsChannelServiceImpl短信渠道主表,抽象不同短信供应商配置。
system_sms_code(手机验证码)主表idmobilecodecreate_ipscenetoday_indexusedused_timeused_ipcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离SmsCodeDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsCodeDO.java);核心服务:SmsCodeServiceImpl验证码表,单独保存验证码生命周期和使用状态。
system_sms_log(短信日志)日志表idchannel_idchannel_codetemplate_idtemplate_codetemplate_typetemplate_contenttemplate_paramsapi_template_idmobileuser_iduser_typesend_statussend_timeapi_send_codeapi_send_msgapi_request_idapi_serial_noreceive_statusreceive_timeapi_receive_codeapi_receive_msgcreatorcreate_timeupdaterupdate_timedeletedchannel_id -> pay_channel.id / system_sms_channel.id(按模块区分);user_id -> system_users.id 或 member_user.id(按 user_type / 模块区分)SmsLogDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsLogDO.java);核心服务:SmsLogServiceImpl / SmsSendServiceImpl短信发送结果日志,便于排查发送链路和供应商返回值。
system_sms_template(短信模板)模板表idtypestatuscodenamecontentparamsremarkapi_template_idchannel_idchannel_codecreatorcreate_timeupdaterupdate_timedeletedchannel_id -> pay_channel.id / system_sms_channel.id(按模块区分)SmsTemplateDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/sms/SmsTemplateDO.java);核心服务:SmsTemplateServiceImpl短信模板表,把业务文案、参数、渠道模板编号独立出来。
system_social_client(社交客户端表)主表idnamesocial_typeuser_typeclient_idclient_secretagent_idpublic_keystatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离SocialClientDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialClientDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
system_social_user(社交用户表)主表idtypeopenidtokenraw_token_infonicknameavatarraw_user_infocodestatecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离SocialUserDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
system_social_user_bind(社交绑定表)主表iduser_iduser_typesocial_typesocial_user_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);social_user_id -> system_social_user.id;tenant_id -> 多租户隔离SocialUserBindDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/social/SocialUserBindDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
system_tenant(租户表)主表idnamecontact_user_idcontact_namecontact_mobilestatuswebsitespackage_idexpire_timeaccount_countcreatorcreate_timeupdaterupdate_timedeletedpackage_id -> system_tenant_package.id 或 pay_wallet_recharge_package.id(按模块区分)TenantDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantDO.java);核心服务:TenantServiceImpl租户主表,定义租户生命周期、套餐、账号上限和域名。
system_tenant_package(租户套餐表)主表idnamestatusremarkmenu_idscreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。TenantPackageDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/tenant/TenantPackageDO.java);核心服务:TenantPackageServiceImpl租户套餐表,把可用菜单能力独立成可复用配置。
system_user_post(用户岗位表)关联表iduser_idpost_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);post_id -> system_post.id;tenant_id -> 多租户隔离UserPostDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/dept/UserPostDO.java用户与岗位的多对多关联表,让岗位可独立维护。
system_user_role(用户和角色关联表)关联表iduser_idrole_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);role_id -> system_role.id;tenant_id -> 多租户隔离UserRoleDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/permission/UserRoleDO.java);核心服务:PermissionServiceImpl用户与角色的多对多关联表,用来避免在用户表里堆角色字段。
system_users(用户信息表)主表idusernamepasswordnicknameremarkdept_idpost_idsemailmobilesexavatarstatuslogin_iplogin_datecreatorcreate_timeupdaterupdate_timedeletedtenant_iddept_id -> system_dept.id;tenant_id -> 多租户隔离AdminUserDOyudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/user/AdminUserDO.java);核心服务:AdminUserServiceImpl后台管理员主表,承载登录账号、部门归属、基础资料和租户隔离。

系统模块的关键关系链是:system_users -> system_user_role -> system_role -> system_role_menu -> system_menu,再加上 system_deptsystem_postsystem_tenant。这套设计的核心是“身份、组织、权限、租户”分层,不把职责压在一张用户表里。

基础设施

基础设施模块不直接承载业务单据,而是提供配置、文件、代码生成、任务调度、访问日志和数据源管理。这类表拆得细,是为了让技术能力成为平台能力,而不是写死在代码里。

表名表类型表结构主要关系代码入口设计作用与拆分目的
infra_api_access_log(API 访问日志表)日志表idtrace_iduser_iduser_typeapplication_namerequest_methodrequest_urlrequest_paramsresponse_bodyuser_ipuser_agentoperate_moduleoperate_nameoperate_typebegin_timeend_timedurationresult_coderesult_msgcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离ApiAccessLogDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiAccessLogDO.java历史留痕层,和主业务表拆开,避免主表既承载当前态又承载无限增长的历史。
infra_api_error_log(系统异常日志)日志表idtrace_iduser_iduser_typeapplication_namerequest_methodrequest_urlrequest_paramsuser_ipuser_agentexception_timeexception_nameexception_messageexception_root_cause_messageexception_stack_traceexception_class_nameexception_file_nameexception_method_nameexception_line_numberprocess_statusprocess_timeprocess_user_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离ApiErrorLogDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/logger/ApiErrorLogDO.java历史留痕层,和主业务表拆开,避免主表既承载当前态又承载无限增长的历史。
infra_codegen_column(代码生成表字段定义)主表idtable_idcolumn_namedata_typecolumn_commentnullableprimary_keyordinal_positionjava_typejava_fielddict_typeexamplecreate_operationupdate_operationlist_operationlist_operation_conditionlist_operation_resulthtml_typecreatorcreate_timeupdaterupdate_timedeletedtable_id -> infra_codegen_table.idCodegenColumnDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenColumnDO.java);核心服务:CodegenServiceImpl代码生成的字段级定义,保存字段如何映射到 Java / 前端表单。
infra_codegen_table(代码生成表定义)主表iddata_source_config_idscenetable_nametable_commentremarkmodule_namebusiness_nameclass_nameclass_commentauthortemplate_typefront_typeparent_menu_idmaster_table_idsub_join_column_idsub_join_manytree_parent_column_idtree_name_column_idcreatorcreate_timeupdaterupdate_timedeleteddata_source_config_id -> infra_data_source_config.idCodegenTableDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/codegen/CodegenTableDO.java);核心服务:CodegenServiceImpl代码生成的表级定义,保存生成场景、模块名、模板类型。
infra_config(参数配置表)配置表idcategorytypenameconfig_keyvaluevisibleremarkcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。ConfigDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/config/ConfigDO.java);核心服务:ConfigServiceImpl参数配置表,把系统可热修改配置从代码中抽离。
infra_data_source_config(数据源配置表)配置表idnameurlusernamepasswordcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。DataSourceConfigDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/db/DataSourceConfigDO.java);核心服务:DataSourceConfigServiceImpl配置中心表,把变化频繁但不属于事务数据的内容独立出来。
infra_file(文件表)主表idconfig_idnamepathurltypesizecreatorcreate_timeupdaterupdate_timedeletedconfig_id -> infra_file_config.id / ai_api_key.id(按模块区分)FileDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileDO.java);核心服务:FileServiceImpl文件元数据表,只存路径、URL、配置来源等索引信息。
infra_file_config(文件配置表)配置表idnamestorageremarkmasterconfigcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。FileConfigDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileConfigDO.java);核心服务:FileConfigServiceImpl文件存储配置表,抽象本地、OSS、COS、MinIO 等存储实现。
infra_file_content(文件表)主表idconfig_idpathcontentcreatorcreate_timeupdaterupdate_timedeletedconfig_id -> infra_file_config.id / ai_api_key.id(按模块区分)FileContentDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/file/FileContentDO.java文件内容表,给数据库存储场景或小文件存储做补充。
infra_job(定时任务表)主表idnamestatushandler_namehandler_paramcron_expressionretry_countretry_intervalmonitor_timeoutcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。JobDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobDO.java);核心服务:JobServiceImpl定时任务主表,描述调度器需要执行什么任务。
infra_job_log(定时任务日志表)日志表idjob_idhandler_namehandler_paramexecute_indexbegin_timeend_timedurationstatusresultcreatorcreate_timeupdaterupdate_timedeletedjob_id -> infra_job.idJobLogDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/job/JobLogDO.java);核心服务:JobLogServiceImpl定时任务执行日志表,和任务定义拆开便于留历史。

基础设施模块的关键思想是“能力配置化”:文件上传靠 infra_file_config + infra_file,代码生成靠 infra_data_source_config + infra_codegen_table + infra_codegen_column,定时任务靠 infra_job + infra_job_log,访问监控靠 infra_api_access_log + infra_api_error_log

会员

会员模块面向商城或 C 端用户,与后台管理员分库逻辑、分账号体系。这样能把前台注册、手机号登录、等级标签、收货地址和营销数据与后台权限体系隔开。

表名表类型表结构主要关系代码入口设计作用与拆分目的
member_address(用户收件地址)主表iduser_idnamemobilearea_iddetail_addressdefault_statuscreate_timecreatorupdate_timedeletedupdateruser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分)MemberAddressDOyudao-module-member/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/address/MemberAddressDO.java会员地址表,一对多保存收货地址。
member_brokerage_record(佣金记录)流水/历史表iduser_idbiz_idbiz_typetitlepricetotal_pricedescriptionstatusfrozen_daysunfreeze_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离未在当前扫描中定位到 DO会员分佣流水,保留每次佣金变动来源。
member_group(用户分组)主表idnameremarkstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离MemberGroupDOyudao-module-member/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/group/MemberGroupDO.java会员分组表,用于精细化运营分群。
member_level(会员等级)主表idnameexperienceleveldiscount_percenticonbackground_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idstatustenant_id -> 多租户隔离MemberLevelDOyudao-module-member/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/level/MemberLevelDO.java会员等级表,用于成长体系和权益分层。
member_tag(会员标签)主表idnamecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离MemberTagDOyudao-module-member/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/tag/MemberTagDO.java会员标签表,用于画像标签和营销筛选。
member_user(会员表)主表idnicknamenamesexbirthdayarea_idmarkpointavatarstatusmobilepasswordregister_iplogin_iplogin_datetag_idslevel_idexperiencegroup_idcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离MemberUserDOyudao-module-member/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/user/MemberUserDO.java);核心服务:MemberUserServiceImpl会员用户主表,面向商城前台,而不是后台管理员。

会员模块和后台用户拆开,是因为它们的注册方式、登录方式、运营属性和权限模型完全不同。后台用户强调 RBAC,会员用户强调登录、营销、地址、等级、标签和资产。

商城

商城模块按照“商品主数据 -> 营销活动 -> 交易履约”三层拆开。这样做的原因是商品可以长期存在,营销活动是阶段性的,而交易订单一旦形成就必须保持历史稳定,不应被商品或活动的后续变更直接污染。

表名表类型表结构主要关系代码入口设计作用与拆分目的
product_brand(商品品牌)主表idnamepic_urlsortdescriptionstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ProductBrandDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/brand/ProductBrandDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
product_browse_history(商品浏览记录表)流水/历史表iduser_idspu_iduser_deletedcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);spu_id -> product_spu.id;tenant_id -> 多租户隔离ProductBrowseHistoryDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/history/ProductBrowseHistoryDO.java记录过程变化而不是当前汇总状态,适合审计、对账和回放。
product_category(商品分类)树形主表idparent_idnamepic_urlsortstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idparent_id -> 同表主键,形成树结构;tenant_id -> 多租户隔离ProductCategoryDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/category/ProductCategoryDO.java树形主数据,通过 parent_id 实现层级管理,便于递归查询和级联展示。
product_comment(商品评论)主表iduser_iduser_nicknameuser_avataranonymousorder_idorder_item_idspu_idspu_namesku_idsku_pic_urlsku_propertiesvisiblescoresdescription_scoresbenefit_scorescontentpic_urlsreply_statusreply_user_idreply_contentreply_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);order_id -> 订单主表 id;spu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离ProductCommentDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/comment/ProductCommentDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
product_favorite(商品收藏表)主表iduser_idspu_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);spu_id -> product_spu.id;tenant_id -> 多租户隔离ProductFavoriteDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/favorite/ProductFavoriteDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
product_property(商品属性项)主表idnamestatusremarkcreate_timeupdate_timecreatorupdatertenant_iddeletedtenant_id -> 多租户隔离ProductPropertyDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
product_property_value(商品属性值)主表idproperty_idnamestatusremarkcreate_timeupdate_timecreatorupdatertenant_iddeletedtenant_id -> 多租户隔离ProductPropertyValueDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/property/ProductPropertyValueDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
product_sku(商品sku)主表idspu_idpropertiespricemarket_pricecost_pricebar_codepic_urlstockweightvolumefirst_brokerage_pricesecond_brokerage_pricesales_countcreate_timeupdate_timecreatorupdaterdeletedtenant_idspu_id -> product_spu.id;tenant_id -> 多租户隔离ProductSkuDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/sku/ProductSkuDO.java);核心服务:ProductSkuServiceImpl商品 SKU 明细表,承载规格组合、库存和销售价格。
product_spu(商品spu)主表idnamekeywordintroductiondescriptioncategory_idbrand_idpic_urlslider_pic_urlssortstatusspec_typepricemarket_pricecost_pricestockdelivery_typesdelivery_template_idgive_integralsub_commission_typesales_countvirtual_sales_countbrowse_countcreate_timeupdate_timecreatorupdaterdeletedtenant_idcategory_id -> 分类主表 id;brand_id -> 品牌主表 id;tenant_id -> 多租户隔离ProductSpuDOyudao-module-mall/yudao-module-product/src/main/java/cn/iocoder/yudao/module/product/dal/dataobject/spu/ProductSpuDO.java);核心服务:ProductSpuServiceImpl商品 SPU 主表,沉淀商品公共信息和聚合统计字段。
product_statistics(商品统计表)主表idtimespu_idbrowse_countbrowse_user_countfavorite_countcart_countorder_countorder_pay_countorder_pay_priceafter_sale_countafter_sale_refund_pricebrowse_convert_percentcreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;tenant_id -> 多租户隔离ProductStatisticsDOyudao-module-mall/yudao-module-statistics/src/main/java/cn/iocoder/yudao/module/statistics/dal/dataobject/product/ProductStatisticsDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_article(文章管理表)主表idcategory_idspu_idtitleauthorpic_urlintroductionbrowse_countsortstatusrecommend_hotrecommend_bannercontentcreatorcreate_timeupdaterupdate_timedeletedtenant_idcategory_id -> 分类主表 id;spu_id -> product_spu.id;tenant_id -> 多租户隔离ArticleDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/article/ArticleDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_article_category(文章分类表)主表idnamepic_urlstatussortcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ArticleCategoryDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/article/ArticleCategoryDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_banner(Banner 广告位)主表idtitlepic_urlurlstatussortpositionmemobrowse_countcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BannerDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/banner/BannerDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_bargain_activity(砍价活动)主表idnamestart_timeend_timestatusspu_idsku_idbargain_first_pricebargain_min_pricestocktotal_stockhelp_max_countbargain_counttotal_limit_countrandom_min_pricerandom_max_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离BargainActivityDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/bargain/BargainActivityDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_bargain_help(砍价助力表)主表iduser_idactivity_idrecord_idreduce_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离BargainHelpDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/bargain/BargainHelpDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_bargain_record(砍价记录表)流水/历史表idactivity_iduser_idspu_idsku_idbargain_first_pricebargain_pricestatusorder_idend_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);spu_id -> product_spu.id;sku_id -> product_sku.id;order_id -> 订单主表 id;tenant_id -> 多租户隔离BargainRecordDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/bargain/BargainRecordDO.java记录过程变化而不是当前汇总状态,适合审计、对账和回放。
promotion_combination_activity(拼团活动)主表idnamespu_idtotal_limit_countsingle_limit_countstart_timeend_timeuser_sizevirtual_groupstatuslimit_durationcreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;tenant_id -> 多租户隔离CombinationActivityDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/combination/CombinationActivityDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_combination_product(拼团商品)主表idactivity_idspu_idsku_idactivity_statusactivity_start_timeactivity_end_timecombination_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离CombinationProductDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/combination/CombinationProductDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_combination_record(拼团记录)流水/历史表idactivity_idspu_idpic_urlspu_namesku_idcountuser_idnicknameavatarhead_idorder_iduser_sizeuser_countvirtual_groupstatuscombination_priceexpire_timestart_timeend_timecreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;sku_id -> product_sku.id;user_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);order_id -> 订单主表 id;tenant_id -> 多租户隔离CombinationRecordDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/combination/CombinationRecordDO.java记录过程变化而不是当前汇总状态,适合审计、对账和回放。
promotion_coupon(优惠劵)主表idtemplate_idnamestatususer_idtake_typeuse_pricevalid_start_timevalid_end_timeproduct_scopeproduct_scope_valuesdiscount_typediscount_percentdiscount_pricediscount_limit_priceuse_order_iduse_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离CouponDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/coupon/CouponDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_coupon_template(优惠劵模板)模板表idnamedescriptionstatustotal_counttake_limit_counttake_typeuse_priceproduct_scopeproduct_scope_valuesvalidity_typevalid_start_timevalid_end_timefixed_start_termfixed_end_termdiscount_typediscount_percentdiscount_pricediscount_limit_pricetake_countuse_countcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离CouponTemplateDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/coupon/CouponTemplateDO.java模板定义层,先存规则模板,再由消息/任务实例表引用。
promotion_discount_activity(限时折扣活动)主表idnamestatusstart_timeend_timeremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DiscountActivityDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/discount/DiscountActivityDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_discount_product(限时折扣商品\n)主表idactivity_idspu_idsku_iddiscount_typediscount_percentdiscount_priceactivity_statusactivity_nameactivity_start_timeactivity_end_timecreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离DiscountProductDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/discount/DiscountProductDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_diy_page(装修页面)主表idtemplate_idnameremarkpreview_pic_urlspropertycreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DiyPageDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/diy/DiyPageDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_diy_template(装修模板)模板表idnameusedused_timeremarkpreview_pic_urlspropertycreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DiyTemplateDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/diy/DiyTemplateDO.java模板定义层,先存规则模板,再由消息/任务实例表引用。
promotion_kefu_conversation(客服会话)主表iduser_idlast_message_timelast_message_contentlast_message_content_typeadmin_pinneduser_deletedadmin_deletedadmin_unread_message_countcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离KeFuConversationDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/kefu/KeFuConversationDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_kefu_message(客服消息)主表idconversation_idsender_idsender_typereceiver_idreceiver_typecontent_typecontentread_statuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离KeFuMessageDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/kefu/KeFuMessageDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_point_activity(积分商城活动)主表idspu_idstatusremarksortstocktotal_stockcreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;tenant_id -> 多租户隔离PointActivityDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/point/PointActivityDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_point_product(积分商城商品)主表idactivity_idspu_idsku_idcountpointpricestockactivity_statuscreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离PointProductDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/point/PointProductDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_reward_activity(满减送活动)主表idnamestatusstart_timeend_timeremarkcondition_typeproduct_scopeproduct_scope_valuesrulescreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离RewardActivityDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/reward/RewardActivityDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_seckill_activity(秒杀活动)主表idspu_idnamestatusremarkstart_timeend_timesortconfig_idstotal_limit_countsingle_limit_countstocktotal_stockcreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;tenant_id -> 多租户隔离SeckillActivityDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/SeckillActivityDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
promotion_seckill_config(秒杀时段)配置表idnamestart_timeend_timeslider_pic_urlsstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离SeckillConfigDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/SeckillConfigDO.java配置中心表,把变化频繁但不属于事务数据的内容独立出来。
promotion_seckill_product(秒杀参与商品)主表idactivity_idconfig_idsspu_idsku_idseckill_pricestockactivity_statusactivity_start_timeactivity_end_timecreatorcreate_timeupdaterupdate_timedeletedtenant_idspu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离SeckillProductDOyudao-module-mall/yudao-module-promotion/src/main/java/cn/iocoder/yudao/module/promotion/dal/dataobject/seckill/SeckillProductDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_after_sale(售后订单)主表idnotypestatuswayuser_idapply_reasonapply_descriptionapply_pic_urlsorder_idorder_noorder_item_Idspu_idspu_namesku_idpropertiespic_urlcountaudit_timeaudit_user_idaudit_reasonrefund_pricepay_refund_idrefund_timelogistics_idlogistics_nodelivery_timereceive_timereceive_reasoncreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);order_id -> 订单主表 id;spu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离AfterSaleDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/AfterSaleDO.java);核心服务:AfterSaleServiceImpl售后主表,统一退款、退货、换货等售后申请。
trade_after_sale_log(售后订单日志)日志表iduser_iduser_typeafter_sale_idbefore_statusafter_statusoperate_typecontentcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离AfterSaleLogDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/aftersale/AfterSaleLogDO.java);核心服务:AfterSaleLogServiceImpl售后流转日志,记录审批、退款、关闭等动作。
trade_brokerage_record(佣金记录)流水/历史表iduser_idbiz_idbiz_typetitlepricetotal_pricedescriptionstatusfrozen_daysunfreeze_timesource_user_levelsource_user_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离BrokerageRecordDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageRecordDO.java记录过程变化而不是当前汇总状态,适合审计、对账和回放。
trade_brokerage_user(分销用户)主表idbind_user_idbind_user_timebrokerage_enabledbrokerage_timebrokerage_pricefrozen_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BrokerageUserDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageUserDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_brokerage_withdraw(佣金提现)主表iduser_idpricefee_pricetotal_pricetypenameaccount_nobank_namebank_addressaccount_qr_code_urlstatusaudit_reasonaudit_timeremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离BrokerageWithdrawDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageWithdrawDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_cart(购物车的商品信息)主表iduser_idspu_idsku_idcountselectedcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);spu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离CartDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/cart/CartDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_config(交易中心配置)配置表idafter_sale_refund_reasonsafter_sale_return_reasonsdelivery_express_free_enableddelivery_express_free_pricedelivery_pick_up_enabledbrokerage_enabledbrokerage_enabled_conditionbrokerage_bind_modebrokerage_poster_urlsbrokerage_first_percentbrokerage_second_percentbrokerage_withdraw_min_pricebrokerage_withdraw_fee_percentbrokerage_frozen_daysbrokerage_withdraw_typescreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离TradeConfigDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/config/TradeConfigDO.java配置中心表,把变化频繁但不属于事务数据的内容独立出来。
trade_delivery_express(快递公司)主表idcodenamelogosortstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DeliveryExpressDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryExpressDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_delivery_express_template(快递运费模板)模板表idnamecharge_modesortcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DeliveryExpressTemplateDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryExpressTemplateDO.java模板定义层,先存规则模板,再由消息/任务实例表引用。
trade_delivery_express_template_charge(快递运费模板计费配置)主表idtemplate_idarea_idscharge_modestart_countstart_priceextra_countextra_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DeliveryExpressTemplateChargeDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryExpressTemplateChargeDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_delivery_express_template_free(快递运费模板包邮配置)主表idtemplate_idarea_idsfree_pricefree_countcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DeliveryExpressTemplateFreeDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryExpressTemplateFreeDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_delivery_pick_up_store(自提门店)主表idnameintroductionphonearea_iddetail_addresslogoopening_timeclosing_timelatitudelongitudestatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离DeliveryPickUpStoreDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/delivery/DeliveryPickUpStoreDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
trade_order(交易订单表)主表idnotypeterminaluser_iduser_ipuser_remarkstatusproduct_countcancel_typeremarkcomment_statusbrokerage_user_idpay_order_idpay_statuspay_timepay_channel_codefinish_timecancel_timetotal_pricediscount_pricedelivery_priceadjust_pricepay_pricedelivery_typelogistics_idlogistics_nodelivery_timereceive_timereceiver_namereceiver_mobilereceiver_area_idreceiver_detail_addresspick_up_store_idpick_up_verify_coderefund_statusrefund_pricecoupon_idcoupon_priceuse_pointpoint_pricegive_pointrefund_pointvip_pricegive_coupon_template_countsgive_coupon_idsseckill_activity_idbargain_activity_idbargain_record_idcombination_activity_idcombination_head_idcombination_record_idpoint_activity_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离TradeOrderDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java);核心服务:TradeOrderUpdateServiceImpl / TradeOrderQueryServiceImpl交易订单主表,负责订单状态机、金额汇总、履约信息。
trade_order_item(交易订单明细表)明细表iduser_idorder_idcart_idspu_idspu_namesku_idpropertiespic_urlcountcomment_statuspricediscount_pricedelivery_priceadjust_pricepay_pricecoupon_pricepoint_priceuse_pointgive_pointvip_priceafter_sale_idafter_sale_statuscreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);order_id -> 订单主表 id;spu_id -> product_spu.id;sku_id -> product_sku.id;tenant_id -> 多租户隔离TradeOrderItemDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java订单行项目表,把一笔订单拆成多个商品明细。
trade_order_log(交易订单日志)日志表iduser_iduser_typeorder_idbefore_statusafter_statusoperate_typecontentcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);order_id -> 订单主表 id;tenant_id -> 多租户隔离TradeOrderLogDOyudao-module-mall/yudao-module-trade/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderLogDO.java);核心服务:TradeOrderLogServiceImpl订单状态日志表,用于追踪订单状态变化。
trade_statistics(交易统计表)主表idtimeorder_create_countorder_pay_countorder_pay_priceafter_sale_countafter_sale_refund_pricebrokerage_settlement_pricewallet_pay_pricerecharge_pay_countrecharge_pay_pricerecharge_refund_countrecharge_refund_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离TradeStatisticsDOyudao-module-mall/yudao-module-statistics/src/main/java/cn/iocoder/yudao/module/statistics/dal/dataobject/trade/TradeStatisticsDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。

商城模块最重要的链路是:product_spu/product_sku -> promotion_* -> trade_order/trade_order_item -> trade_after_sale。商品、营销、交易拆层之后,历史订单不会因为商品改价或活动下线而失真。

支付

支付模块把业务订单与支付单解耦,形成支付应用、支付渠道、支付订单、支付提交扩展、退款、通知任务、钱包流水几个层级。这种拆法的核心收益是:同一业务单可以多次发起支付,同一个支付平台可以给多个业务应用复用。

表名表类型表结构主要关系代码入口设计作用与拆分目的
pay_app(支付应用信息)主表idapp_keynamestatusremarkorder_notify_urlrefund_notify_urltransfer_notify_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离PayAppDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/app/PayAppDO.java支付应用表,把商城、钱包、演示等支付入口独立建模。
pay_channel(支付渠道\n)主表idcodestatusremarkfee_rateapp_idconfigcreatorcreate_timeupdaterupdate_timedeletedtenant_idapp_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离PayChannelDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/channel/PayChannelDO.java支付渠道表,把支付宝、微信等商户参数挂到应用下面。
pay_demo_order(示例订单\n)主表iduser_idspu_idspu_namepricepay_statuspay_order_idpay_channel_codepay_timepay_refund_idrefund_pricerefund_timecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);spu_id -> product_spu.id;tenant_id -> 多租户隔离PayDemoOrderDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoOrderDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
pay_demo_transfer(示例业务转账订单)主表idapp_idtypepriceuser_namealipay_logon_idopenidtransfer_statuspay_transfer_idpay_channel_codetransfer_timecreatorcreate_timeupdaterupdate_timedeletedtenant_idapp_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离未在当前扫描中定位到 DO承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
pay_notify_log(支付通知 App 的日志)日志表idtask_idnotify_timesresponsestatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离PayNotifyLogDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyLogDO.java支付通知日志,记录每次通知响应。
pay_notify_task(商户支付、退款等的通知\n)主表idapp_idtypedata_idstatusmerchant_order_idmerchant_transfer_idnext_notify_timelast_execute_timenotify_timesmax_notify_timesnotify_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idapp_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离PayNotifyTaskDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/notify/PayNotifyTaskDO.java异步通知任务表,保障支付结果回调可重试。
pay_order(支付订单\n)主表idapp_idchannel_idchannel_codemerchant_order_idsubjectbodynotify_urlpricechannel_fee_ratechannel_fee_pricestatususer_ipexpire_timesuccess_timeextension_idnorefund_pricechannel_user_idchannel_order_nocreatorcreate_timeupdaterupdate_timedeletedtenant_idapp_id -> pay_app.id / mp_account.app_id(按模块区分);channel_id -> pay_channel.id / system_sms_channel.id(按模块区分);tenant_id -> 多租户隔离PayOrderDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderDO.java);核心服务:PayOrderServiceImpl支付订单主表,负责统一商户订单与渠道支付的映射。
pay_order_extension(支付订单\n)明细表idnoorder_idchannel_idchannel_codeuser_ipstatuschannel_extraschannel_error_codechannel_error_msgchannel_notify_datacreatorcreate_timeupdaterupdate_timedeletedtenant_idorder_id -> 订单主表 id;channel_id -> pay_channel.id / system_sms_channel.id(按模块区分);tenant_id -> 多租户隔离PayOrderExtensionDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/order/PayOrderExtensionDO.java支付尝试扩展表,一笔商户单可有多次提交或多个渠道尝试。
pay_refund(退款订单)主表idnoapp_idchannel_idchannel_codeorder_idorder_nomerchant_order_idmerchant_refund_idnotify_urlstatuspay_pricerefund_pricereasonuser_ipchannel_order_nochannel_refund_nosuccess_timechannel_error_codechannel_error_msgchannel_notify_datacreatorcreate_timeupdaterupdate_timedeletedtenant_idapp_id -> pay_app.id / mp_account.app_id(按模块区分);channel_id -> pay_channel.id / system_sms_channel.id(按模块区分);order_id -> 订单主表 id;tenant_id -> 多租户隔离PayRefundDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/refund/PayRefundDO.java);核心服务:PayRefundServiceImpl退款主表,把退款过程和支付订单拆分,支持多次退款。
pay_transfer(转账单表)主表idnoapp_idchannel_idchannel_codemerchant_transfer_idtypestatussuccess_timepricesubjectuser_namealipay_logon_idopenidnotify_urluser_ipchannel_extraschannel_transfer_nochannel_error_codechannel_error_msgchannel_notify_datacreatorcreate_timeupdaterupdate_timedeletedtenant_idapp_id -> pay_app.id / mp_account.app_id(按模块区分);channel_id -> pay_channel.id / system_sms_channel.id(按模块区分);tenant_id -> 多租户隔离PayTransferDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
pay_wallet(会员钱包表)主表iduser_iduser_typebalancetotal_expensetotal_rechargefreeze_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离PayWalletDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletDO.java钱包账户表,保存用户余额汇总。
pay_wallet_recharge(会员钱包充值)主表idwallet_idtotal_pricepay_pricebonus_pricepackage_idpay_statuspay_order_idpay_channel_codepay_timepay_refund_idrefund_total_pricerefund_pay_pricerefund_bonus_pricerefund_timerefund_statuscreatorcreate_timeupdaterupdate_timedeletedtenant_idpackage_id -> system_tenant_package.id 或 pay_wallet_recharge_package.id(按模块区分);tenant_id -> 多租户隔离PayWalletRechargeDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletRechargeDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
pay_wallet_recharge_package(充值套餐表)主表idnamepay_pricebonus_pricestatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离PayWalletRechargePackageDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletRechargePackageDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
pay_wallet_transaction(会员钱包流水表)主表idwallet_idbiz_typebiz_idnotitlepricebalancecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离PayWalletTransactionDOyudao-module-pay/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/wallet/PayWalletTransactionDO.java钱包流水表,和余额拆分可保留完整账务历史。

支付模块最核心的设计是:业务订单不直接等于支付订单。pay_order 只管支付,pay_order_extension 处理多次支付提交,pay_refund 处理退款,pay_notify_task/log 保证异步通知可靠送达。

CRM

CRM 模块把销售链路拆成线索、客户、联系人、商机、合同、回款和共享权限。这样可以让销售过程从“潜在机会”逐步沉淀为“可回款资产”,每个阶段的数据口径也更清晰。

表名表类型表结构主要关系代码入口设计作用与拆分目的
crm_business(CRM 商机表)主表idnamecustomer_idfollow_up_statuscontact_last_timecontact_next_timeowner_user_idstatus_type_idstatus_idend_statusdeal_timetotal_product_pricediscount_percenttotal_priceremarkcreatorupdatercreate_timeupdate_timeend_remarkdeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);tenant_id -> 多租户隔离CrmBusinessDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/business/CrmBusinessDO.java商机表,用来表达销售机会和阶段推进。
crm_business_product(CRM 商机产品关联表)主表idbusiness_idproduct_idproduct_pricebusiness_pricecounttotal_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idbusiness_id -> crm_business.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离CrmBusinessProductDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/business/CrmBusinessProductDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
crm_business_status(CRM 商机状态表)主表idtype_idnamepercentsortcreatorcreate_timeupdaterupdate_timetenant_iddeletedtenant_id -> 多租户隔离CrmBusinessStatusDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/business/CrmBusinessStatusDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
crm_business_status_type(CRM 商机状态组表)主表idnamedept_idscreatorcreate_timeupdaterupdate_timetenant_iddeletedtenant_id -> 多租户隔离CrmBusinessStatusTypeDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/business/CrmBusinessStatusTypeDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
crm_clue(CRM 线索表)主表idnamefollow_up_statuscontact_last_timecontact_last_contentcontact_next_timeowner_user_idtransform_statuscustomer_idmobiletelephoneqqwechatemailarea_iddetail_addressindustry_idlevelsourceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);tenant_id -> 多租户隔离CrmClueDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/clue/CrmClueDO.java线索表,保存未转化前的潜客信息。
crm_contact(CRM 联系人)树形主表idnamecustomer_idcontact_last_timecontact_last_contentcontact_next_timeowner_user_idmobiletelephoneemailqqwechatarea_iddetail_addresssexmasterparent_idpostremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);parent_id -> 同表主键,形成树结构;tenant_id -> 多租户隔离CrmContactDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contact/CrmContactDO.java联系人表,把联系人从客户主体里拆开。
crm_contact_business(CRM 联系人商机关联表)关联表idcontact_idbusiness_idcreatorcreate_timeupdaterupdate_timedeletedtenant_idbusiness_id -> crm_business.id;tenant_id -> 多租户隔离CrmContactBusinessDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contact/CrmContactBusinessDO.java中间关联层,把多对多关系拆开,避免在主表里保存数组或重复列。
crm_contract(CRM 合同表)主表idnamenocustomer_idbusiness_idcontact_last_timeowner_user_idprocess_instance_idaudit_statusorder_datestart_timeend_timetotal_product_pricediscount_percenttotal_pricesign_contact_idsign_user_idremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);business_id -> crm_business.id;tenant_id -> 多租户隔离CrmContractDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contract/CrmContractDO.java合同表,用来固化成交结果和回款依据。
crm_contract_config(CRM 合同配置表)配置表idnotify_enablednotify_dayscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离CrmContractConfigDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contract/CrmContractConfigDO.java配置中心表,把变化频繁但不属于事务数据的内容独立出来。
crm_contract_product(CRM 合同产品关联表)主表idcontract_idproduct_idproduct_pricecontract_pricecounttotal_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idcontract_id -> crm_contract.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离CrmContractProductDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/contract/CrmContractProductDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
crm_customer(CRM 客户表)主表idnamefollow_up_statuscontact_last_timecontact_last_contentcontact_next_timeowner_user_idowner_timelock_statusdeal_statusmobiletelephoneqqwechatemailarea_iddetail_addressindustry_idlevelsourceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离CrmCustomerDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/customer/CrmCustomerDO.java);核心服务:CrmCustomerServiceImpl客户主表,是 CRM 的核心资产对象。
crm_customer_limit_config(CRM 客户限制配置表)配置表idtypeuser_idsdept_idsmax_countdeal_count_enabledcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离CrmCustomerLimitConfigDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/customer/CrmCustomerLimitConfigDO.java配置中心表,把变化频繁但不属于事务数据的内容独立出来。
crm_customer_pool_config(CRM 客户公海配置表)配置表idenabledcontact_expire_daysdeal_expire_daysnotify_enablednotify_dayscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离CrmCustomerPoolConfigDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/customer/CrmCustomerPoolConfigDO.java配置中心表,把变化频繁但不属于事务数据的内容独立出来。
crm_follow_up_record(CRM 跟进记录)流水/历史表idbiz_typebiz_idtypecontentnext_timepic_urlsfile_urlsbusiness_idscontact_idscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离CrmFollowUpRecordDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/followup/CrmFollowUpRecordDO.java记录过程变化而不是当前汇总状态,适合审计、对账和回放。
crm_permission(CRM 数据权限表)主表idbiz_typebiz_iduser_idlevelcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离CrmPermissionDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/permission/CrmPermissionDO.javaCRM 业务对象权限表,把客户/商机/合同的共享权限独立建模。
crm_product(CRM 产品表)主表idnamenounitpricestatuscategory_iddescriptionowner_user_idcreatorcreate_timeupdaterupdate_timetenant_iddeletedcategory_id -> 分类主表 id;tenant_id -> 多租户隔离CrmProductDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/product/CrmProductDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
crm_product_category(CRM 产品分类表)树形主表idnameparent_idcreatorcreate_timeupdaterupdate_timedeletedtenant_idparent_id -> 同表主键,形成树结构;tenant_id -> 多租户隔离CrmProductCategoryDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/product/CrmProductCategoryDO.java树形主数据,通过 parent_id 实现层级管理,便于递归查询和级联展示。
crm_receivable(CRM 回款表)主表idnoplan_idcustomer_idcontract_idowner_user_idaudit_statusprocess_instance_idreturn_timereturn_typepriceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);contract_id -> crm_contract.id;tenant_id -> 多租户隔离CrmReceivableDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/CrmReceivableDO.java回款表,表示已发生或待确认的回款记录。
crm_receivable_plan(CRM 回款计划表)主表idperiodcustomer_idcontract_idowner_user_idreceivable_idreturn_timereturn_typepriceremind_daysremind_timeremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);contract_id -> crm_contract.id;receivable_id -> crm_receivable.id;tenant_id -> 多租户隔离CrmReceivablePlanDOyudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/dataobject/receivable/CrmReceivablePlanDO.java回款计划表,把未来回款节点提前拆出来。

CRM 模块的业务推进顺序通常是:线索 crm_clue -> 客户 crm_customer / 联系人 crm_contact -> 商机 crm_business -> 合同 crm_contract -> 回款计划 crm_receivable_plan -> 回款 crm_receivable。权限共享单独由 crm_permission 处理。

ERP

ERP 模块是典型的主数据 + 单据头 + 单据体 + 库存流水设计。采购、销售、出入库、盘点、调拨、收付款都拆成头表和行表,是为了同时满足汇总查询和明细追溯。

表名表类型表结构主要关系代码入口设计作用与拆分目的
erp_account(ERP 结算账户)主表idnamenoremarkstatussortdefault_statuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpAccountDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/finance/ErpAccountDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
erp_customer(ERP 客户表)主表idnamecontactmobiletelephoneemailfaxremarkstatussorttax_notax_percentbank_namebank_accountbank_addresscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpCustomerDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/sale/ErpCustomerDO.javaERP 客户主数据表。
erp_finance_payment(ERP 付款单表)主表idnostatuspayment_timefinance_user_idsupplier_idaccount_idtotal_pricediscount_pricepayment_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idsupplier_id -> erp_supplier.id;account_id -> system_mail_account.id / erp_account.id(按模块区分);tenant_id -> 多租户隔离ErpFinancePaymentDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/finance/ErpFinancePaymentDO.java付款主表。
erp_finance_payment_item(ERP 付款项表)明细表idpayment_idbiz_typebiz_idbiz_nototal_pricepaid_pricepayment_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpFinancePaymentItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/finance/ErpFinancePaymentItemDO.java付款分摊明细表。
erp_finance_receipt(ERP 收款单表)主表idnostatusreceipt_timefinance_user_idcustomer_idaccount_idtotal_pricediscount_pricereceipt_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);account_id -> system_mail_account.id / erp_account.id(按模块区分);tenant_id -> 多租户隔离ErpFinanceReceiptDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/finance/ErpFinanceReceiptDO.java收款主表,让财务收款与销售单据解耦。
erp_finance_receipt_item(ERP 收款项表)明细表idreceipt_idbiz_typebiz_idbiz_nototal_pricereceipted_pricereceipt_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpFinanceReceiptItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/finance/ErpFinanceReceiptItemDO.java收款分摊明细表。
erp_product(ERP 产品表)主表idnamebar_codecategory_idunit_idstatusstandardremarkexpiry_dayweightpurchase_pricesale_pricemin_pricecreatorcreate_timeupdaterupdate_timedeletedtenant_idcategory_id -> 分类主表 id;tenant_id -> 多租户隔离ErpProductDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/product/ErpProductDO.javaERP 商品主数据表,偏库存和进销存口径。
erp_product_category(ERP 产品分类)树形主表idparent_idnamecodesortstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idparent_id -> 同表主键,形成树结构;tenant_id -> 多租户隔离ErpProductCategoryDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/product/ErpProductCategoryDO.javaERP 商品分类树。
erp_product_unit(ERP 产品单位表)主表idnamestatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpProductUnitDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/product/ErpProductUnitDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
erp_purchase_in(ERP 采购入库表)主表idnostatussupplier_idaccount_idin_timeorder_idorder_nototal_counttotal_pricepayment_pricetotal_product_pricetotal_tax_pricediscount_percentdiscount_priceother_pricefile_urlremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idsupplier_id -> erp_supplier.id;account_id -> system_mail_account.id / erp_account.id(按模块区分);order_id -> 订单主表 id;tenant_id -> 多租户隔离ErpPurchaseInDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseInDO.java采购入库主表。
erp_purchase_in_items(ERP 销售入库项表)明细表idin_idorder_item_idwarehouse_idproduct_idproduct_unit_idproduct_pricecounttotal_pricetax_percenttax_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idwarehouse_id -> erp_warehouse.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpPurchaseInItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseInItemDO.java采购入库明细表。
erp_purchase_order(ERP 采购订单表)主表idnostatussupplier_idaccount_idorder_timetotal_counttotal_pricetotal_product_pricetotal_tax_pricediscount_percentdiscount_pricedeposit_pricefile_urlremarkin_countreturn_countcreatorcreate_timeupdaterupdate_timedeletedtenant_idsupplier_id -> erp_supplier.id;account_id -> system_mail_account.id / erp_account.id(按模块区分);tenant_id -> 多租户隔离ErpPurchaseOrderDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseOrderDO.java采购订单主表。
erp_purchase_order_items(ERP 采购订单项表)明细表idorder_idproduct_idproduct_unit_idproduct_pricecounttotal_pricetax_percenttax_priceremarkin_countreturn_countcreatorcreate_timeupdaterupdate_timedeletedtenant_idorder_id -> 订单主表 id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpPurchaseOrderItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseOrderItemDO.java采购订单明细表。
erp_purchase_return(ERP 采购退货表)主表idnostatussupplier_idaccount_idreturn_timeorder_idorder_nototal_counttotal_pricerefund_pricetotal_product_pricetotal_tax_pricediscount_percentdiscount_priceother_pricefile_urlremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idsupplier_id -> erp_supplier.id;account_id -> system_mail_account.id / erp_account.id(按模块区分);order_id -> 订单主表 id;tenant_id -> 多租户隔离ErpPurchaseReturnDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseReturnDO.java采购退货主表。
erp_purchase_return_items(ERP 采购退货项表)明细表idreturn_idorder_item_idwarehouse_idproduct_idproduct_unit_idproduct_pricecounttotal_pricetax_percenttax_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idwarehouse_id -> erp_warehouse.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpPurchaseReturnItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpPurchaseReturnItemDO.java采购退货明细表。
erp_sale_order(ERP 销售订单表)主表idnostatuscustomer_idaccount_idsale_user_idorder_timetotal_counttotal_pricetotal_product_pricetotal_tax_pricediscount_percentdiscount_pricedeposit_pricefile_urlremarkout_countreturn_countcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);account_id -> system_mail_account.id / erp_account.id(按模块区分);tenant_id -> 多租户隔离ErpSaleOrderDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/sale/ErpSaleOrderDO.java);核心服务:ErpSaleOrderServiceImpl销售订单主表。
erp_sale_order_items(ERP 销售订单项表)明细表idorder_idproduct_idproduct_unit_idproduct_pricecounttotal_pricetax_percenttax_priceremarkout_countreturn_countcreatorcreate_timeupdaterupdate_timedeletedtenant_idorder_id -> 订单主表 id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpSaleOrderItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/sale/ErpSaleOrderItemDO.java销售订单明细表。
erp_sale_out(ERP 销售出库表)主表idnostatuscustomer_idaccount_idsale_user_idout_timeorder_idorder_nototal_counttotal_pricereceipt_pricetotal_product_pricetotal_tax_pricediscount_percentdiscount_priceother_pricefile_urlremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);account_id -> system_mail_account.id / erp_account.id(按模块区分);order_id -> 订单主表 id;tenant_id -> 多租户隔离ErpSaleOutDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/sale/ErpSaleOutDO.java销售出库主表。
erp_sale_out_items(ERP 销售出库项表)明细表idout_idorder_item_idwarehouse_idproduct_idproduct_unit_idproduct_pricecounttotal_pricetax_percenttax_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idwarehouse_id -> erp_warehouse.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpSaleOutItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/sale/ErpSaleOutItemDO.java销售出库明细表。
erp_sale_return(ERP 销售退货表)主表idnostatuscustomer_idaccount_idsale_user_idreturn_timeorder_idorder_nototal_counttotal_pricerefund_pricetotal_product_pricetotal_tax_pricediscount_percentdiscount_priceother_pricefile_urlremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);account_id -> system_mail_account.id / erp_account.id(按模块区分);order_id -> 订单主表 id;tenant_id -> 多租户隔离ErpSaleReturnDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/sale/ErpSaleReturnDO.java销售退货主表。
erp_sale_return_items(ERP 销售退货项表)明细表idreturn_idorder_item_idwarehouse_idproduct_idproduct_unit_idproduct_pricecounttotal_pricetax_percenttax_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idwarehouse_id -> erp_warehouse.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpSaleReturnItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/sale/ErpSaleReturnItemDO.java销售退货明细表。
erp_stock(ERP 产品库存表)主表idproduct_idwarehouse_idcountcreatorcreate_timeupdaterupdate_timedeletedtenant_idproduct_id -> crm_product.id / erp_product.id(按模块区分);warehouse_id -> erp_warehouse.id;tenant_id -> 多租户隔离ErpStockDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockDO.java库存汇总表,按商品 + 仓库聚合当前库存。
erp_stock_check(ERP 库存盘点单表)主表idnocheck_timetotal_counttotal_pricestatusremarkfile_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpStockCheckDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockCheckDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
erp_stock_check_item(ERP 库存盘点项表)明细表idcheck_idwarehouse_idproduct_idproduct_unit_idproduct_pricestock_countactual_countcounttotal_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idwarehouse_id -> erp_warehouse.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpStockCheckItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockCheckItemDO.java从属于头表的子表,用一对多结构保存逐行明细,便于统计与追溯并存。
erp_stock_in(ERP 其它入库单表)主表idnosupplier_idin_timetotal_counttotal_pricestatusremarkfile_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idsupplier_id -> erp_supplier.id;tenant_id -> 多租户隔离ErpStockInDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockInDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
erp_stock_in_item(ERP 其它入库单项表)明细表idin_idwarehouse_idproduct_idproduct_unit_idproduct_pricecounttotal_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idwarehouse_id -> erp_warehouse.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpStockInItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockInItemDO.java从属于头表的子表,用一对多结构保存逐行明细,便于统计与追溯并存。
erp_stock_move(ERP 库存调拨单表)主表idnomove_timetotal_counttotal_pricestatusremarkfile_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpStockMoveDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockMoveDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
erp_stock_move_item(ERP 库存调拨项表)明细表idmove_idfrom_warehouse_idto_warehouse_idproduct_idproduct_unit_idproduct_pricecounttotal_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idproduct_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpStockMoveItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockMoveItemDO.java从属于头表的子表,用一对多结构保存逐行明细,便于统计与追溯并存。
erp_stock_out(ERP 其它入库单表)主表idnocustomer_idout_timetotal_counttotal_pricestatusremarkfile_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idcustomer_id -> crm_customer.id / erp_customer.id(按模块区分);tenant_id -> 多租户隔离ErpStockOutDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockOutDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
erp_stock_out_item(ERP 其它出库单项表)明细表idout_idwarehouse_idproduct_idproduct_unit_idproduct_pricecounttotal_priceremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idwarehouse_id -> erp_warehouse.id;product_id -> crm_product.id / erp_product.id(按模块区分);tenant_id -> 多租户隔离ErpStockOutItemDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockOutItemDO.java从属于头表的子表,用一对多结构保存逐行明细,便于统计与追溯并存。
erp_stock_record(ERP 产品库存明细表)流水/历史表idproduct_idwarehouse_idcounttotal_countbiz_typebiz_idbiz_item_idbiz_nocreatorcreate_timeupdaterupdate_timedeletedtenant_idproduct_id -> crm_product.id / erp_product.id(按模块区分);warehouse_id -> erp_warehouse.id;tenant_id -> 多租户隔离ErpStockRecordDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpStockRecordDO.java库存流水表,记录每次出入库造成的数量变化。
erp_supplier(ERP 供应商表)主表idnamecontactmobiletelephoneemailfaxremarkstatussorttax_notax_percentbank_namebank_accountbank_addresscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpSupplierDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/purchase/ErpSupplierDO.java供应商主数据表。
erp_warehouse(ERP 仓库表)主表idnameaddresssortremarkprincipalwarehouse_pricetruckage_pricestatusdefault_statuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离ErpWarehouseDOyudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/dal/dataobject/stock/ErpWarehouseDO.java仓库主数据表。

ERP 模块统一采用“主数据 + 单据头 + 单据体 + 库存流水”模式。例如采购订单、采购入库、采购退货、销售订单、销售出库、销售退货都成对拆分;库存现状靠 erp_stock,历史变动靠 erp_stock_record

BPM

BPM 模块保存流程定义补充信息、表单、表达式、监听器和业务单据示例。它并不替代 Flowable 的运行时表,而是补足业务系统自身需要维护的“流程元数据”和“业务单据”。

表名表类型表结构主要关系代码入口设计作用与拆分目的
bpm_category(BPM 流程分类)主表idnamecodedescriptionstatussortcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BpmCategoryDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmCategoryDO.java流程分类表。
bpm_form(BPM 表单定义表)主表idnamestatusconffieldsremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BpmFormDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmFormDO.java);核心服务:BpmFormServiceImpl流程表单定义表。
bpm_oa_leave(OA 请假申请表)主表iduser_idtypereasonstart_timeend_timedaystatusprocess_instance_idcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离BpmOALeaveDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/BpmOALeaveDO.java请假业务表,是流程驱动的业务单据示例。
bpm_process_definition_info(BPM 流程定义的信息表)主表idprocess_definition_idmodel_idmodel_typeicondescriptionform_typeform_idform_confform_fieldsform_custom_create_pathform_custom_view_pathsimple_modelsortvisiblestart_user_idsmanager_user_idscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BpmProcessDefinitionInfoDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessDefinitionInfoDO.java流程定义扩展信息表,把 Flowable 运行时定义外的业务属性单独存放。
bpm_process_expression(BPM 流程表达式表)主表idnamestatusexpressioncreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BpmProcessExpressionDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessExpressionDO.java流程表达式表。
bpm_process_instance_copy(BPM 流程实例抄送表)主表iduser_idstart_user_idprocess_instance_idprocess_instance_namecategoryactivity_idactivity_nametask_idreasoncreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离BpmProcessInstanceCopyDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/task/BpmProcessInstanceCopyDO.java流程抄送表。
bpm_process_listener(BPM 流程监听器表)主表idnametypestatuseventvalue_typevaluecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BpmProcessListenerDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmProcessListenerDO.java流程监听器配置表。
bpm_user_group(BPM 用户组表)主表idnamedescriptionuser_idsstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离BpmUserGroupDOyudao-module-bpm/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmUserGroupDO.java审批用户组表。

BPM 模块不是重复造流程引擎,而是围绕流程引擎维护自己的业务元数据与表单资产。所以它会出现“流程定义扩展表”“流程分类表”“流程监听器表”“业务单据表示例”这样的补充结构。

公众号

公众号模块围绕一个公众号账号,把粉丝、素材、菜单、消息、标签和自动回复拆开。这样可以独立同步微信侧资源,并在本地维持管理视图。

表名表类型表结构主要关系代码入口设计作用与拆分目的
mp_account(公众号账号表)主表idnameaccountapp_idapp_secreturltokenaes_keyqr_code_urlremarkcreatorcreate_timeupdaterupdate_timedeletedtenant_idapp_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离MpAccountDOyudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/account/MpAccountDO.java);核心服务:MpAccountServiceImpl公众号账号主表。
mp_auto_reply(公众号消息自动回复表)主表idaccount_idapp_idtyperequest_keywordrequest_matchrequest_message_typeresponse_message_typeresponse_contentresponse_media_idresponse_media_urlresponse_titleresponse_descriptionresponse_thumb_media_idresponse_thumb_media_urlresponse_articlesresponse_music_urlresponse_hq_music_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idaccount_id -> system_mail_account.id / erp_account.id(按模块区分);app_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离MpAutoReplyDOyudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/message/MpAutoReplyDO.java自动回复配置表。
mp_material(公众号素材表)主表idaccount_idapp_idmedia_idtypepermanenturlnamemp_urltitleintroductioncreatorcreate_timeupdaterupdate_timedeletedtenant_idaccount_id -> system_mail_account.id / erp_account.id(按模块区分);app_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离MpMaterialDOyudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/material/MpMaterialDO.java公众号素材表。
mp_menu(公众号菜单表)树形主表idaccount_idapp_idnamemenu_keyparent_idtypeurlmini_program_app_idmini_program_page_patharticle_idreply_message_typereply_contentreply_media_idreply_media_urlreply_titlereply_descriptionreply_thumb_media_idreply_thumb_media_urlreply_articlesreply_music_urlreply_hq_music_urlcreatorcreate_timeupdaterupdate_timedeletedtenant_idaccount_id -> system_mail_account.id / erp_account.id(按模块区分);app_id -> pay_app.id / mp_account.app_id(按模块区分);parent_id -> 同表主键,形成树结构;tenant_id -> 多租户隔离MpMenuDOyudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/menu/MpMenuDO.java公众号菜单表。
mp_message(公众号消息表 )主表idmsg_idaccount_idapp_iduser_idopenidtypesend_fromcontentmedia_idmedia_urlrecognitionformattitledescriptionthumb_media_idthumb_media_urlurllocation_xlocation_yscalelabelarticlesmusic_urlhq_music_urleventevent_keycreatorcreate_timeupdaterupdate_timedeletedtenant_idaccount_id -> system_mail_account.id / erp_account.id(按模块区分);app_id -> pay_app.id / mp_account.app_id(按模块区分);user_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离MpMessageDOyudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/message/MpMessageDO.java公众号消息收发表。
mp_tag(公众号标签表)主表idtag_idnamecountaccount_idapp_idcreatorcreate_timeupdaterupdate_timedeletedtenant_idaccount_id -> system_mail_account.id / erp_account.id(按模块区分);app_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离MpTagDOyudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/tag/MpTagDO.java公众号标签表。
mp_user(公众号粉丝表)主表idopenidunion_idsubscribe_statussubscribe_timenicknamehead_image_urlunsubscribe_timelanguagecountryprovincecityremarktag_idsaccount_idapp_idcreatorcreate_timeupdaterupdate_timedeletedtenant_idaccount_id -> system_mail_account.id / erp_account.id(按模块区分);app_id -> pay_app.id / mp_account.app_id(按模块区分);tenant_id -> 多租户隔离MpUserDOyudao-module-mp/src/main/java/cn/iocoder/yudao/module/mp/dal/dataobject/user/MpUserDO.java公众号粉丝用户表。

公众号模块的对象边界很清晰:账号、粉丝、素材、菜单、标签、消息和自动回复分别建表,便于与微信侧接口进行同步、重建和审计。

AI

AI 模块把平台密钥、角色、会话、消息和各种生成任务拆开。生成式业务通常是“配置”和“任务实例”并存,因此会自然形成主配置表 + 任务结果表的结构。

表名表类型表结构主要关系代码入口设计作用与拆分目的
ai_api_key(AI API 密钥表)主表idnameapi_keyplatformurlstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离AiApiKeyDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiApiKeyDO.javaAI 平台密钥表,把平台接入凭据与模型配置分离。
ai_chat_conversation(AI 聊天对话表)主表iduser_idrole_idknowledge_idtitlemodel_idmodelpinnedpinned_timesystem_messagetemperaturemax_tokensmax_contextscreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);role_id -> system_role.id;tenant_id -> 多租户隔离AiChatConversationDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/chat/AiChatConversationDO.java聊天会话主表。
ai_chat_message(AI 聊天消息表)主表idconversation_idreply_iduser_idrole_idsegment_idstypemodelmodel_idcontentuse_contextcreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);role_id -> system_role.id;tenant_id -> 多租户隔离AiChatMessageDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/chat/AiChatMessageDO.java聊天消息明细表。
ai_chat_model(AI 聊天模型表)主表idkey_idnamemodelplatformsortstatustemperaturemax_tokensmax_contextscreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离未在当前扫描中定位到 DO承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
ai_chat_role(AI 聊天角色表)主表iduser_idmodel_idnameavatarcategorysortdescriptionsystem_messagepublic_statusstatuscreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离AiChatRoleDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/model/AiChatRoleDO.java聊天角色表,保存 persona 配置。
ai_image(AI 绘画表)主表iduser_idpromptplatformmodelwidthheightstatusfinish_timeerror_messagepublic_statuspic_urloptionstask_idbuttonscreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离AiImageDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/image/AiImageDO.javaAI 绘图任务表。
ai_mind_map(AI 思维导图表)主表iduser_idpromptgenerated_contentplatformmodelerror_messagecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离AiMindMapDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/mindmap/AiMindMapDO.javaAI 脑图生成任务表。
ai_music(AI 音乐表)主表iduser_idtitlelyricimage_urlaudio_urlvideo_urlstatusdescriptionpromptplatformmodelgenerate_modetagsdurationpublic_statustask_iderror_messagecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离AiMusicDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/music/AiMusicDO.javaAI 音乐生成任务表。
ai_write(AI 写作表)主表iduser_idtypeplatformmodelpromptgenerated_contentoriginal_contentlengthformattonelanguageerror_messagecreatorcreate_timeupdaterupdate_timedeletedtenant_iduser_id -> system_users.id 或 member_user.id(按 user_type / 模块区分);tenant_id -> 多租户隔离AiWriteDOyudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/dal/dataobject/write/AiWriteDO.javaAI 写作任务表。

AI 模块把“配置”与“任务实例”拆开:密钥/角色/模型是配置,会话/消息/绘图/写作/音乐/脑图是运行结果。这样既能沉淀模型配置,也能保存生成记录。

报表

报表模块当前落库重点是大屏项目定义。它更偏向内容资产,而不是事务型业务。

表名表类型表结构主要关系代码入口设计作用与拆分目的
report_go_view_project(GoView 项目表)主表idnamepic_urlcontentstatusremarkcreatorcreate_timeupdaterupdate_timedeleted以业务字段和状态字段为主,弱外键关联为主。GoViewProjectDOyudao-module-report/src/main/java/cn/iocoder/yudao/module/report/dal/dataobject/goview/GoViewProjectDO.java大屏项目表,用于 GoView 报表设计保存。

示例

示例模块主要用于演示代码生成、树结构、一对多等常见建模方式,适合理解框架推荐的拆表套路。

表名表类型表结构主要关系代码入口设计作用与拆分目的
yudao_demo01_contact(示例联系人表)主表idnamesexbirthdaydescriptionavatarcreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离Demo01ContactDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo01/Demo01ContactDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
yudao_demo02_category(示例分类表)树形主表idnameparent_idcreatorcreate_timeupdaterupdate_timedeletedtenant_idparent_id -> 同表主键,形成树结构;tenant_id -> 多租户隔离Demo02CategoryDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo02/Demo02CategoryDO.java树形主数据,通过 parent_id 实现层级管理,便于递归查询和级联展示。
yudao_demo03_course(学生课程表)主表idstudent_idnamescorecreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离Demo03CourseDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03CourseDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
yudao_demo03_grade(学生班级表)主表idstudent_idnameteachercreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离Demo03GradeDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03GradeDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。
yudao_demo03_student(学生表)主表idnamesexbirthdaydescriptioncreatorcreate_timeupdaterupdate_timedeletedtenant_idtenant_id -> 多租户隔离Demo03StudentDOyudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/dataobject/demo/demo03/Demo03StudentDO.java承载模块内的核心业务实体,通常作为其它子表或关联表的归属对象。

4. 读这套表时建议优先抓住的 5 个模式

  1. 看表名前缀。先判断模块归属,再谈字段。
  2. 看是不是头表 + 行表。凡是交易、采购、销售、收付款、支付,大概率都不是一张表能讲清。
  3. 看有没有中间表。出现多对多关系时,芋道的设计基本都会落成关联表。
  4. 看有没有日志/流水。凡是状态会反复变化的业务,都需要把当前态和历史态分开。
  5. tenant_iddeleted。这两个字段往往直接决定查询条件、索引策略和 Service 逻辑。

5. 最后总结

RuoYi-Vue-Pro 的表设计并不是“把业务拆碎”,而是在做三件事:

  • 用主表沉淀长期稳定的业务对象。
  • 用关联表和明细表表达复杂关系和过程。
  • 用日志、模板、配置、租户字段把系统做成可运营的平台。

如果你后续还想继续深入,最建议先从三条链路去读源码:

  • 后台权限链:system_users -> system_user_role -> system_role -> system_role_menu -> system_menu
  • 商城下单链:product_spu/product_sku -> trade_order/trade_order_item -> pay_order -> trade_after_sale
  • ERP 出入库链:erp_purchase_order / erp_sale_order -> erp_stock_* -> erp_stock_record

这样你会更容易把“表结构”和“代码逻辑”同时看懂。

Lucking