Files
junhong_cmp_fiber/internal/model/user.go
huang 984ccccc63 docs(constitution): 新增数据库设计原则(v2.4.0)
在项目宪章中新增第九条原则"数据库设计原则",明确禁止使用数据库外键约束和ORM关联标签。

主要变更:
- 新增原则IX:数据库设计原则(Database Design Principles)
- 强制要求:数据库表不得使用外键约束
- 强制要求:GORM模型不得使用ORM关联标签(foreignKey、hasMany等)
- 强制要求:表关系必须通过ID字段手动维护
- 强制要求:关联数据查询必须显式编写,避免ORM魔法
- 强制要求:时间字段由GORM处理,不使用数据库触发器

设计理念:
- 提升业务逻辑灵活性(无数据库约束限制)
- 优化高并发性能(无外键检查开销)
- 增强代码可读性(显式查询,无隐式预加载)
- 简化数据库架构和迁移流程
- 支持分布式和微服务场景

版本升级:2.3.0 → 2.4.0(MINOR)
2025-11-13 13:40:19 +08:00

27 lines
647 B
Go

package model
import (
"time"
)
// User 用户实体
type User struct {
BaseModel
// 基本信息
Username string `gorm:"uniqueIndex:uk_user_username;not null;size:50" json:"username"`
Email string `gorm:"uniqueIndex:uk_user_email;not null;size:100" json:"email"`
Password string `gorm:"not null;size:255" json:"-"` // 不返回给客户端
// 状态字段
Status string `gorm:"not null;size:20;default:'active';index:idx_user_status" json:"status"`
// 元数据
LastLoginAt *time.Time `gorm:"column:last_login_at" json:"last_login_at,omitempty"`
}
// TableName 指定表名
func (User) TableName() string {
return "tb_user"
}