后端

我的博客项目架构关系详解

久流
2026年06月11日 0 评论
博客

一、模块架构图

graph TD subgraph 用户管理模块["用户管理模块"] SysUser[用户 SysUser] SysRole[角色 SysRole] SysPermission[权限 SysPermission] SysPermissionGroup[权限组 SysPermissionGroup] SysUserRole[(用户角色关联)] SysRolePermission[(角色权限关联)] SysRolePermissionGroup[(角色权限组关联)] SysPermissionGroupItem[(权限组项关联)] end subgraph 博客模块["博客模块"] SysBlog[博客文章 SysBlog] SysCategory[分类 SysCategory] SysComment[评论 SysComment] SysOssImage[OSS图片 SysOssImage] end subgraph 配置模块["配置模块"] SysConfig[系统配置 SysConfig] SysSeo[SEO配置 SysSeo 已禁用] SysFriendLink[友情链接 SysFriendLink] end %% 用户管理内部关系 SysUser -->|拥有| SysUserRole SysRole -->|分配给| SysUserRole SysRole -->|拥有| SysRolePermission SysPermission -->|被分配| SysRolePermission SysRole -->|拥有| SysRolePermissionGroup SysPermissionGroup -->|被分配| SysRolePermissionGroup SysPermission -->|属于| SysPermissionGroupItem SysPermissionGroup -->|包含| SysPermissionGroupItem %% 博客模块内部关系 SysCategory -->|包含| SysBlog SysBlog -->|拥有| SysComment SysComment -->|回复| SysComment %% 跨模块关系 SysUser -->|作者| SysBlog SysUser -->|评论者| SysComment SysUser -->|上传者| SysOssImage

二、详细实体关系图

erDiagram %% 实体定义 - 用户管理 SysUser { bigint id PK "主键" varchar username UK "用户名" varchar nickname "昵称" varchar password "密码" varchar email UK "邮箱" varchar avatar_url "头像URL" tinyint status "状态" tinyint is_deleted "删除标记" datetime create_time "创建时间" datetime update_time "更新时间" } SysRole { bigint id PK varchar code UK varchar name varchar description tinyint is_super_admin tinyint is_system tinyint is_deleted int sort_order tinyint status datetime create_time datetime update_time } SysPermission { bigint id PK varchar code UK varchar name varchar description int sort_order datetime create_time } SysPermissionGroup { bigint id PK varchar name varchar description int sort_order tinyint status tinyint is_system tinyint is_deleted datetime create_time datetime update_time } %% 关联表 SysUserRole { bigint id PK bigint user_id FK bigint role_id FK datetime create_time } SysRolePermission { bigint id PK bigint role_id FK bigint permission_id FK datetime create_time } SysRolePermissionGroup { bigint id PK bigint role_id FK bigint group_id FK datetime create_time } SysPermissionGroupItem { bigint id PK bigint group_id FK bigint permission_id FK int sort_order datetime create_time } %% 实体定义 - 博客模块 SysBlog { bigint id PK bigint category_id FK varchar title varchar summary longtext content_md varchar cover_image varchar tags bigint author_id FK int comment_count tinyint is_hidden tinyint is_top tinyint is_recommend tinyint is_deleted datetime create_time datetime update_time } SysCategory { bigint id PK varchar name varchar description int sort_order datetime create_time tinyint is_hidden datetime update_time } SysComment { bigint id PK bigint blog_id FK bigint parent_id FK bigint user_id FK varchar username varchar email varchar avatar_url varchar website text content tinyint status int like_count varchar device_info varchar ip_address tinyint is_admin tinyint is_deleted datetime create_time datetime update_time } SysOssImage { bigint id PK varchar hash varchar original_name varchar object_name bigint file_size bigint user_id FK datetime create_time } %% 实体定义 - 配置模块 SysFriendLink { bigint id PK varchar name varchar url varchar summary varchar remark varchar image_url int sort_order tinyint status tinyint is_deleted datetime create_time datetime update_time } SysSeo { bigint id PK varchar page_type bigint page_id varchar title varchar keywords varchar description varchar og_title varchar og_description varchar og_image varchar og_type varchar canonical_url varchar robots tinyint is_deleted tinyint is_system datetime create_time datetime update_time } SysConfig { bigint id PK varchar config_key varchar config_value varchar data_type varchar validation_rule varchar description tinyint is_system tinyint is_open tinyint is_deleted datetime create_time datetime update_time } %% 关系定义 SysUser ||--o{ SysUserRole : "拥有" SysRole ||--o{ SysUserRole : "分配给" SysRole ||--o{ SysRolePermission : "拥有" SysPermission ||--o{ SysRolePermission : "被分配" SysRole ||--o{ SysRolePermissionGroup : "拥有" SysPermissionGroup ||--o{ SysRolePermissionGroup : "被分配" SysPermission ||--o{ SysPermissionGroupItem : "属于" SysPermissionGroup ||--o{ SysPermissionGroupItem : "包含" SysUser ||--o{ SysBlog : "发布" SysCategory ||--o{ SysBlog : "分类" SysBlog ||--o{ SysComment : "包含" SysUser ||--o{ SysComment : "发表" SysComment ||--o{ SysComment : "回复" SysUser ||--o{ SysOssImage : "上传"

三、关系矩阵表

用户管理模块关系

关系类型 主实体 关联实体 关系说明 基数
用户角色 SysUser SysUserRole 用户拥有角色 1:N
角色分配 SysRole SysUserRole 角色分配给用户 1:N
角色权限 SysRole SysRolePermission 角色拥有权限 1:N
权限分配 SysPermission SysRolePermission 权限分配给角色 1:N
角色权限组 SysRole SysRolePermissionGroup 角色拥有权限组 1:N
权限组分配 SysPermissionGroup SysRolePermissionGroup 权限组分配给角色 1:N
权限归属 SysPermission SysPermissionGroupItem 权限属于权限组 1:N
权限组包含 SysPermissionGroup SysPermissionGroupItem 权限组包含权限 1:N

博客模块关系

关系类型 主实体 关联实体 关系说明 基数
作者关系 SysUser SysBlog 用户发布文章 1:N
分类关系 SysCategory SysBlog 分类包含文章 1:N
文章评论 SysBlog SysComment 文章包含评论 1:N
用户评论 SysUser SysComment 用户发表评论 1:N
评论回复 SysComment SysComment 评论回复评论 1:N
用户上传 SysUser SysOssImage 用户上传图片 1:N

四、实体分类汇总

模块 实体名称 表名 说明
核心业务 用户 sys_user 系统用户信息
博客文章 sys_blog 博客文章内容
分类 sys_category 文章分类
评论 sys_comment 文章评论
权限管理 角色 sys_role 用户角色定义
权限 sys_permission 系统权限定义
权限组 sys_permission_group 权限分组
用户角色关联 sys_user_role 用户-角色关系
角色权限关联 sys_role_permission 角色-权限关系
角色权限组关联 sys_role_permission_group 角色-权限组关系
权限组项关联 sys_permission_group_item 权限-权限组关系
配置管理 系统配置 sys_config 系统参数配置
SEO配置(已禁用) sys_seo 页面SEO设置
其他 友情链接 sys_friend_link 友情链接管理
OSS图片 sys_oss_image 图片存储记录

五、图表说明

  • 矩形框:表示实体(数据库表)
  • 圆角矩形框:表示模块分组
  • 菱形框:表示关系(由Mermaid自动生成)
  • PK:主键(Primary Key)
  • FK:外键(Foreign Key)
  • UK:唯一键(Unique Key)
  • 1:N:一对多关系
  • N:M:多对多关系(通过中间表实现)

六、实体关系流程图

flowchart LR A[用户登录] --> B{验证权限} B -->|通过| C[访问资源] B -->|拒绝| D[返回错误] subgraph 权限验证流程 B --> E[检查用户角色] E --> F[检查角色权限] F --> G[检查权限组] end subgraph 内容发布流程 H[创建文章] --> I[选择分类] I --> J[上传图片] J --> K[保存文章] end subgraph 评论流程 L[发表评论] --> M[审核状态] M -->|通过| N[显示评论] M -->|拒绝| O[隐藏评论] end

评论 (0)