# Model层 - 数据模型 ## 📋 目录结构 ``` internal/model/ ├── user.go # 用户模型 ├── photo.go # 照片模型 ├── category.go # 分类模型 ├── vars.go # 模型变量 ├── sql/ # SQL定义文件 │ ├── user.sql # 用户表结构 │ ├── photo.sql # 照片表结构 │ └── category.sql # 分类表结构 └── *_gen.go # 自动生成代码 ``` ## 🎯 模型职责 - **数据定义**: 数据库表结构 - **CRUD操作**: 基础数据操作 - **关联关系**: 表间关系定义 - **验证规则**: 数据验证 ## 🚀 开发流程 1. **定义SQL**: 在sql/目录创建表结构 2. **生成模型**: `make generate-model` 3. **扩展方法**: 在对应模型文件添加自定义方法 ## 📊 表结构关系 ``` User 1:N Photo (用户拥有多张照片) Category 1:N Photo (分类包含多张照片) ``` ## 🎯 文件说明 | 文件 | 用途 | 修改频率 | |---|---|---| | `user.sql` | 用户表定义 | 低 | | `photo.sql` | 照片表定义 | 中 | | `category.sql` | 分类表定义 | 低 | | `*_gen.go` | 自动生成代码 | 不修改 | ## 🔄 生成命令 ```bash # 生成所有模型 make generate-model # 生成单个模型 goctl model mysql ddl -src sql/user.sql -dir ./internal/model/ ```