第一章:魔法文字的秘密
结构体标签就像给数据贴魔法贴纸,用反引号包裹的 gorm:"咒语"
能指挥数据库精灵工作。每个字段最多可以有10+种魔法效果,像搭积木一样组合使用。
type GameCharacter struct {
ID uint `gorm:"primaryKey;autoIncrement"` // 金色钥匙
Name string `gorm:"size:20;unique"` // 名字最长20字且唯一
HP int `gorm:"default:100"` // 初始血量100
Position string `gorm:"-"` // 隐形斗篷字段
}
第二章:基础魔法阵
🗝️ 身份认证类
- primaryKey:金色主钥匙(必须存在)
- unique:防复制咒(值不可重复)
- index:快速通道(建立搜索捷径)
📏 尺寸控制类
size:255
:名字最长255字符type:varchar(60)
:指定存储格式precision:10
:数值精度(小数点位数)
时间魔法
autoCreateTime
:创建时自动盖章autoUpdateTime
:修改时自动刷新autoCreateTime:nano
:精确到纳秒
第三章:高级咒语
(特殊功能)
🛡️ 数据护盾
- not null:必填项防护罩
- default:0:自动填空魔法
- check:age > 0:年龄必须>0的规则
🧩 组件变形术
- serializer:json:自动打包数据包裹
- embedded:嵌套结构体展开术
- embeddedPrefix:info_:添加字段前缀
第四章:连接异世界
(表关联魔法)
🤝 朋友召唤术
type Player struct {
Inventory []Item `gorm:"foreignKey:OwnerID"` // 关联道具背包
}
type Item struct {
OwnerID uint // 连接玩家的桥梁
Name string `gorm:"index"`
}