我正在尝试在 Rails (ActiveRecord) 中实现 OpenEHR 参考模型,但我发现了一些问题,因为它适用于许多不同的类,
这是一个组合图:
如您所见,许多类从Locatable
or Pathable
* 中“继承”了几个属性(整个引用很大,几乎每个类都继承自它)。
此外,它将 data_types 建立为其他类,例如在同一个组合类中,language
是 class CODE_PHRASE
,具有两个属性(link)。
因此我遇到了两个问题:1)如何从抽象类继承属性,2)如何“包含”所需的“类”。
对于我在使用多态关联时想到的第一个问题。
对于第二个,我想使用 STI,但我很快找到了很多几乎相似的模型(实际上它们完全相同):CompositionLanguage
, CompositionTerritory
, EntrySetting
,EntryEncoding
我只在type
属性中使用“链接回”,例如:组合类最多可以有三个属性CODE_PHRASE
,因为所有三个都引用不同的属性(语言、区域和类别),我认为我需要知道关联(知道组合有 3 个 code_phrases 是没有意义的,但是我不知道哪个是对应的属性)。另一方面,Entry
类具有setting
andencoding
属性(链接)。
我意识到可能有不同的方法,但我真的很想知道 Rails(或 ActiveRecord)是否不是为此而设计的。或者,也许我缺少概念信息。