Rails (ActiveRecord) で OpenEHR 参照モデルを実装しようとしていますが、多くの異なるクラスで動作するため、いくつかの問題が見つかりました。
コンポジションの図は次のとおりです。
ご覧のとおり、多くのクラスがLocatable
or Pathable
* からいくつかの属性を「継承」しています (参照全体が巨大で、ほとんどすべてのクラスがそれを継承しています)。
また、data_types を他のクラスとして確立します。たとえば、同じ構成クラスでlanguage
はCODE_PHRASE
、2 つの属性 ( link ) を持つ class です。
したがって、1) 抽象クラスから属性を継承するにはどうすればよいか、2) 必要な「クラス」を「含める」にはどうすればよいかという 2 つの問題に遭遇します。
最初の問題については、ポリモーフィック アソシエーションを使用する際に考えました。
2 つ目については、 STI を使用することを考えましたがCompositionLanguage
、ほとんど同じようなモデル (実際にはまったく同じです) をすぐに見つけることができます:構成クラスは、 で最大 3 つの属性を持つことができます。3 つすべてが異なる属性 (言語、地域、カテゴリ) を参照するため、関連付けについて知る必要があると思いました (構成には 3 つの code_phrases があることを知っても意味がありませんが、どれが対応する属性かわかりませんでした)。一方、クラスにはand属性 ( link ) があります。CompositionTerritory
EntrySetting
EntryEncoding
type
CODE_PHRASE
Entry
setting
encoding
さまざまなアプローチがある可能性があることは理解していますが、Rails (または ActiveRecord) がこのために作成されたものではないかどうかを知りたいです。または、概念的な情報が不足している可能性があります。