与 Grails 的零对多关系?

发布于 2024-11-24 17:52:57 字数 255 浏览 1 评论 0原文

我有一个 tRNA 类别,它可能有也可能没有相关的 grRNA,但会与 cRNA 相关。

所以我可以拥有这种关系:
tRNA-> grRNA-> cRNA

或者这种关系(在本例中我们没有 grRNA 数据):
tRNA-> cRNA

通过 Grails/Gorm 实现这种关系的最佳方法是什么(有时我们可能没有 grRNA)? 最好的领域类设计?

I have a tRNA class which may or may not have an associated grRNA, but will be associated to cRNA.

So I can have this relationship :
tRNA -> grRNA -> cRNA

Or this relationship (in this case we don't have grRNA data) :
tRNA -> cRNA

What is the best way to implement this relationship (we may not have grRNA sometimes) via Grails/Gorm ?
Best domain class design ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我不在是我 2024-12-01 17:52:57

您可以将 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]
}

从技术上讲,我相信如果您使用“类”作为鉴别器列名称,并将类名称作为值,则不需要“鉴别器”行。

You could have grRNA and cRNA be subclasses of a parent, with tRNA having an association with the parent, and grRN associating with cRNA.

In your database tables you would need a class column to define the class (discriminator in the GORM object).

Edit:
Something like:

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]
}

Technically I believe that if you use 'class' as your discriminator column name, and the class names as the values, you do not need the 'discriminator' lines.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文