Grails 存储用户的域设计';s的国家、年龄组等
情况是这样的:用户表包含的数据与其他用户的数据(如国家、年龄组、性别等)重叠 在MySQL中,我会使用三个或两个表。在存储country的情况下,我将使用三个表:一个是user表,另一个是country表,最后一个连接这两个表。(当然,如果一个用户有一个国家,我可以使用两个表。) ex)用户(id,otherUserInfo), 用户国家(id_用户,id_国家), 国家(id,countryName)Grails 存储用户的域设计';s的国家、年龄组等,grails,gorm,grails-domain-class,Grails,Gorm,Grails Domain Class,情况是这样的:用户表包含的数据与其他用户的数据(如国家、年龄组、性别等)重叠 在MySQL中,我会使用三个或两个表。在存储country的情况下,我将使用三个表:一个是user表,另一个是country表,最后一个连接这两个表。(当然,如果一个用户有一个国家,我可以使用两个表。) ex)用户(id,otherUserInfo), 用户国家(id_用户,id_国家), 国家(id,countryName) 作为Grails的新手,我想知道表示此模式的最佳方式是什么。是否需要创建2-3个域类?或者是
作为Grails的新手,我想知道表示此模式的最佳方式是什么。是否需要创建2-3个域类?或者是有一些神奇的特性(像许多其他Grails特性(:)一样)可以在一个域类中实现这一点。很可能用两个域类就可以实现
class User {
//other user info
//if user only has one country
Country country
//if user has many countries
static hasMany = [countries: Country]
}
class Country {
//country info
}
由于您可能不希望国家/地区
属于用户
,因此不需要国家/地区
类中的任何内容来指示与用户
的关系。Grails/Gorm将处理在这两种情况下创建链接实体的问题
如果用户有多个国家/地区,并且您需要存储有关关系的其他信息,则您需要创建自己的联接表。例如,如果您需要保留用户访问该国家/地区的次数:
class User {
//other user info
static hasMany = [userCountries: UserCountry]
}
class UserCountry {
static belongsTo = [user: User]
Country country
int numberOfVisits
}
class Country {
//country info
}