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