我有一个tRNA类,可能有也可能没有相关的grRNA,但会与cRNA相关。
所以我可以建立这种关系:
tRNA - > grRNA - >的cRNA
或者这种关系(在这种情况下我们没有grRNA数据):
tRNA - >的cRNA
通过Grails / Gorm实现这种关系(我们有时可能没有grRNA)的最佳方法是什么? 最佳域名设计?
答案 0 :(得分:1)
您可以将grRNA和cRNA作为亲本的亚类,其中tRNA与亲本关联,grRN与cRNA相关联。
在数据库表中,您需要class
列来定义GORM对象中的类(discriminator
)。
修改强>: 类似的东西:
class GenericRna {
//Properties
//Assuming this is mapped to a database table as well, you'd need:
static mapping = {
table 'generic_rna'
discriminator column: 'class'
}
}
class CRna extends GenericRna {
//Properties
discriminator value: 'CRna'
}
class GrRna extends GenericRna {
//Properties
static hasMany = [cRnas: CRna]
discriminator value: 'GrRna'
}
class TRna {
static hasMany = [genericRnas: GenericRna]
}
从技术上讲,我相信如果你使用'class'作为你的鉴别器列名,并且使用类名作为值,你就不需要'discriminator'行。