多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 模型定义 复杂的模型定义不是必须的,此功能用作数据库数据转换和[自动建表](https://www.kancloud.cn/oldlei/beego/1288519) 默认的表名规则,使用驼峰转蛇形: ~~~ AuthUser -> auth_user Auth_User -> auth__user DB_AuthUser -> d_b__auth_user ~~~ 除了开头的大写字母以外,遇到大写会增加`_`,原名称中的下划线保留。 ## 自定义表名 ~~~ type User struct { Id int Name string } func (u *User) TableName() string { return "auth_user" } ~~~ 如果[前缀设置](https://www.kancloud.cn/oldlei/beego/1288512)为`prefix_`那么表名为:prefix\_auth\_user ## 自定义索引 为单个或多个字段增加索引 ~~~ type User struct { Id int Name string Email string } // 多字段索引 func (u *User) TableIndex() [][]string { return [][]string{ []string{"Id", "Name"}, } } // 多字段唯一键 func (u *User) TableUnique() [][]string { return [][]string{ []string{"Name", "Email"}, } } ~~~ ## 自定义引擎 仅支持 MySQL 默认使用的引擎,为当前数据库的默认引擎,这个是由你的 mysql 配置参数决定的。 你可以在模型里设置 TableEngine 函数,指定使用的引擎 ~~~ type User struct { Id int Name string Email string } // 设置引擎为 INNODB func (u *User) TableEngine() string { return "INNODB" } ~~~