共被编辑 1 次

版本 更新时间 贡献者 编辑原因 操作
#r1 1月22日 amc601 创建问题 查看

Go 语言的 ORM 框架是否支持动态表结构操作?

笔者最近在做一个需求:使用 Go 语言做一个数据仓库服务,底层采用 MySQL 存储,上层提供友好的接口。
接口允许调用方自行决定数据存储的变量名(可以映射为数据库的列名),数据类型(映射为 MySQL 的部分数据类型)。

针对这个需求,我们考虑 Go 的几个 ORM 库。但是呢,以 gorm 为例,给出的例子都需要给定一个 struct,然后根据这个 struct 的结构和类型定义,存取 DB。如:

type Post struct {
    Id    int    `orm:"auto"`
    Title string `orm:"size(100)"`
    User  *User  `orm:"rel(fk)"`
}

var posts []*Post
qs := o.QueryTable("post")
num, err := qs.Filter("User__Name", "slene").All(&posts)

那么请问,golang 的 ORM 库是否支持类似我的需求那样、允许运行时动态定义数据列和数据类型的操作呢?