|
|
@@ -33,7 +33,7 @@ type UserDivideInto struct {
|
|
|
ParentUserID *string `gorm:"index:idx_parent;column:parent_user_id;size:26" json:"parentUserId,omitempty"` // 上级用户(ULID;根为 NULL)|枚举:无|写入:加入时|FK:→ 本表 user_id(自引用)|红线:BFS 上行链依据,禁止成环
|
|
|
LeftVal int32 `gorm:"index:idx_root_left_right,priority:2;column:left_val;not null;default:1" json:"leftVal"` // 左值(Nested Set)|枚举:无|写入:加入/插入新节点时右值扩张|FK:无|红线:区间扩张须同事务(left>=parentRight 全体 +2)
|
|
|
RightVal int32 `gorm:"index:idx_root_left_right,priority:3;column:right_val;not null;default:2" json:"rightVal"` // 右值(Nested Set)|枚举:无|写入:同上|FK:无|红线:必须恒有 left < right
|
|
|
- Layer int32 `gorm:"column:layer;not null;default:1" json:"layer"` // 层级(根=1)|枚举:无|写入:加入时=父+1|FK:无|红线:深度上限 100(超限 → 3111,防递归栈溢出)
|
|
|
+ Layer int32 `gorm:"column:layer;not null;default:1" json:"layer"` // 层级(根=1)|枚举:无|写入:加入时=父+1|FK:无|红线:**两道限制,不是同一个概念**——① **业务规则:最多 3 层**(`service.MaxDivideBizDepth`,第 4 层 → 3111,2026-11-10 拍板"硬规则")② **结构上限:100**(`service.MaxDivideDepth`,防 BFS 不终止/递归爆栈);判序先 3 后 100,**两个数不得合并**(否则下一个看到 3 与 100 并存的人一定会删掉一个)
|
|
|
CreatedAt time.Time `gorm:"column:created_at;not null;default:CURRENT_TIMESTAMP" json:"createdAt"` // 创建时间(datetime(3))|枚举:无|写入:DB 默认|FK:无|红线:勿手改
|
|
|
UpdatedAt time.Time `gorm:"column:updated_at;not null;default:CURRENT_TIMESTAMP" json:"updatedAt"` // 更新时间(datetime(3),ON UPDATE)|枚举:无|写入:DB 自动|FK:无|红线:勿手改
|
|
|
}
|