# bbs-backend ## 目录结构 ```bash bbs-backend |---api # API相关代码 | |---controller # 控制器 | | |---post_controller.go # 处理帖子相关的HTTP请求 | | |---user_controller.go # 处理用户相关的HTTP请求 | |---reply # 响应对象 | | |---post_reply.go # 定义帖子相关的响应对象 | | |---user_reply.go # 定义用户相关的响应对象 | |---request # 请求对象 | | |---post_request.go # 定义帖子相关的请求对象 | | |---user_request.go # 定义用户相关的请求对象 | |---router # 路由 | | |---router.go # 设置Gin路由,将请求映射到相应的控制器 |---common # 通用代码 | |---app # 应用级别的配置和初始化逻辑 | | |---app.go # 应用级别的配置和初始化逻辑 | |---enum # 枚举类型 | | |---enum.go # 定义项目中使用的枚举类型 | |---errcode # 错误码 | | |---errcode.go # 定义项目中使用的错误码 | |---logger # 日志处理 | | |---logger.go # 定义日志处理的逻辑 | |---middleware # 中间件 | | |---middleware.go # 定义项目中使用的中间件 | |---util # 辅助函数 | | |---util.go # 包含项目中使用的辅助函数 | |---response # 统一的响应格式 | | |---response.go # 定义统一的响应格式 |---config # 配置文件 | |---config.go # 配置文件读取逻辑 | |---config.yaml # 定义项目的配置项,如数据库配置、服务器端口等 |---dal # 数据访问层 | |---cache # 缓存相关逻辑 | | |---cache.go # 定义缓存相关的逻辑 | |---dao # 数据访问对象,负责与数据库交互 | | |---post_dao.go # 定义帖子相关的数据访问对象 | | |---user_dao.go # 定义用户相关的数据访问对象 | |---db.go # 数据库连接初始化逻辑 | |---init_db.go # 数据库迁移和初始化数据插入逻辑 | |---model # 数据模型对象,表示数据库表结构 | | |---category_model.go # 定义板块的数据模型 | | |---comment_model.go # 定义评论的数据模型 | | |---post_model.go # 定义帖子的数据模型 | | |---role_model.go # 定义角色的数据模型 | | |---session_model.go # 定义会话的数据模型 | | |---user_model.go # 定义用户的数据模型 |---event # 事件处理 |---library # 第三方库或自定义库 |---logic # 业务逻辑层 | |---appservice # 应用服务,负责用例流的任务协调 | | |---post_service.go # 定义帖子相关的应用服务 | | |---user_service.go # 定义用户相关的应用服务 | |---domainservice # 领域服务,包含核心业务逻辑 | | |---post_domain_service.go # 定义帖子相关的领域服务 | | |---user_domain_service.go # 定义用户相关的领域服务 | |---do # 领域对象,表示业务实体 | | |---post_do.go # 定义帖子的领域对象 | | |---user_do.go # 定义用户的领域对象 |---resources # 静态资源文件 |---test # 测试脚本 |---main.go # 项目的入口文件,负责初始化数据库、设置路由并启动服务器 ``` ### 数据库表 1. **用户表 (`users`)**:存储用户的基本信息,如用户名、密码、电子邮件等。 2. **帖子表 (`posts`)**:存储帖子的基本信息,如标题、内容、作者等。 3. **评论表 (`comments`)**:存储帖子的评论信息,如评论内容、评论者、评论时间等。 4. **板块表 (`categories`)**:存储论坛的板块信息,如板块名称、描述等。 5. **用户角色表 (`roles`)**:存储用户的角色信息,如管理员、普通用户等。 6. **用户角色关联表 (`user_roles`)**:存储用户和角色的关联信息。 7. **会话表 (`sessions`)**:存储用户的会话信息,用于用户登录和身份验证。