Rails多表继承,多态关联或单表继承?

Pab*_* C. 4 activerecord model ruby-on-rails data-modeling openehr

我正在尝试在Rails(ActiveRecord)中实现OpenEHR参考模型,但我发现了一些问题,因为它适用于许多不同的classess,

这是一个组成图:

组成图

正如你所看到的,很多类"继承"了一些属性LocatablePathable*(整个引用很大,几乎每个类都继承自它).

此外,它建立data_types作为其他类,例如在同一组合类中,language是类CODE_PHRASE,具有两个属性(链接).

因此我遇到两个问题:1)如何从抽象类继承属性,以及2)我如何"包含"所需的"类".

对于我在使用多态关联时遇到的第一个问题.

对于第二个,我想用STI,但我发现快了很多,几乎同类机型的(它们是完全一样的实际): ,CompositionLanguage,CompositionTerritory,EntrySetting,EntryEncoding我只在使用type属性为"反向链接",例如:组合类最多可以有三个属性CODE_PHRASE,因为所有三个引用都有不同的属性(语言,区域和类别),我认为我需要知道关联(知道Composition有3个code_phrases,但是没有意义,但是我不知道哪一个是相应的属性).另一方面,Entry类,具有settingencoding属性(链接).

我意识到可能有不同的方法,但我真的想知道是否可能是Rails(或ActiveRecord).或者,也许我错过了概念信息.

小智 5

openEHR RM规范具有深层嵌套的继承和具有树层次结构的复合模式.

我无法通过ActiveRecord实现这种嵌套继承.以下实现是模拟openEHR RM的示例.如果这个例子可以帮助你,我会很高兴.

https://github.com/skoba/openehr_rm_rails