Grails/GORM:域和关联如何映射到 MySql 数据库
Grails/GORM: How do Domains and Associations map to a MySql Database
我正在通过 Grails 3 使用 GORM,我想知道域及其关联在输出到 MySql 数据库时的样子。
我真的在寻找某种 "cheat sheet" 指南。例如,声明:
String --> this column data type
tablePerHierarchy true --> these tables
hasMany --> this table/join table
hasMany & belongsTo --> ...
我认为这会是一个快速的 Google 工作,但到目前为止我还没有发现任何东西。我也知道这是基于 Hibernate 的,所以我也尝试在那里搜索。我可能只是渲染这些表格并自己在这里记下来,但在我这样做之前,社区中是否有人知道这样的资源是否已经存在?
最重要的是,只需查看您的数据库,实时查看会更容易,为此使用 DBMS(例如 HeidiSQL, Workbench e.t.c .)
这是默认数据类型的一些示例 ->
1.) 简单数据类型:
String -> VARCHAR(255)
Integer -> BIGINT
BigDecimal -> DOUBLE
Boolean -> BIT
Date -> DATETIME
2.) 域关系存储 *(要在数据库 gorm 中存储域之间的关系,添加 id (BIGINT) 和 外键)
a.) 有很多:
class People {
...
hasMany = [men : Man]
}
因为人中有很多男人,所以我们将 参考密钥 存储在男人域中。 (这意味着数据库中的人 table 将等同于没有 hasMany 关系 的 table)
b.) belongsTo , hasOne
class Man {
...
Wife wife
hasOne = [Hobby]
belongsTo = [People]
}
| wife_id | hoddy_id | people_id |
Man的table中会有id(BIGINT): "people_id" 关键参考 People table, hasOne 是类似于 belongsTo 并将密钥引用存储到 Hobby table。 (Wife 将类似于 hasOne = [Wife])
如果Peopletable中没有hasMany = [men : Man]
,则会有额外的table:'man_people'(或像那样)
| man_id | people_id |
有关 table 关系的更多信息,您可以找到 >> Here <<。
顺便说一句,您可以更改映射中的默认数据类型,例如:
name type: 'text'
名称将是 LongText
P.S。 Mb 我错过了 smth,但我希望这对你来说是一个小的 "cheat sheet" 指南。
我正在通过 Grails 3 使用 GORM,我想知道域及其关联在输出到 MySql 数据库时的样子。
我真的在寻找某种 "cheat sheet" 指南。例如,声明:
String --> this column data type
tablePerHierarchy true --> these tables
hasMany --> this table/join table
hasMany & belongsTo --> ...
我认为这会是一个快速的 Google 工作,但到目前为止我还没有发现任何东西。我也知道这是基于 Hibernate 的,所以我也尝试在那里搜索。我可能只是渲染这些表格并自己在这里记下来,但在我这样做之前,社区中是否有人知道这样的资源是否已经存在?
最重要的是,只需查看您的数据库,实时查看会更容易,为此使用 DBMS(例如 HeidiSQL, Workbench e.t.c .)
这是默认数据类型的一些示例 ->
1.) 简单数据类型:
String -> VARCHAR(255)
Integer -> BIGINT
BigDecimal -> DOUBLE
Boolean -> BIT
Date -> DATETIME
2.) 域关系存储 *(要在数据库 gorm 中存储域之间的关系,添加 id (BIGINT) 和 外键)
a.) 有很多:
class People {
...
hasMany = [men : Man]
}
因为人中有很多男人,所以我们将 参考密钥 存储在男人域中。 (这意味着数据库中的人 table 将等同于没有 hasMany 关系 的 table)
b.) belongsTo , hasOne
class Man {
...
Wife wife
hasOne = [Hobby]
belongsTo = [People]
}
| wife_id | hoddy_id | people_id |
Man的table中会有id(BIGINT): "people_id" 关键参考 People table, hasOne 是类似于 belongsTo 并将密钥引用存储到 Hobby table。 (Wife 将类似于 hasOne = [Wife])
如果Peopletable中没有hasMany = [men : Man]
,则会有额外的table:'man_people'(或像那样)
| man_id | people_id |
有关 table 关系的更多信息,您可以找到 >> Here <<。
顺便说一句,您可以更改映射中的默认数据类型,例如:
name type: 'text'
名称将是 LongText
P.S。 Mb 我错过了 smth,但我希望这对你来说是一个小的 "cheat sheet" 指南。