STIはいつ理にかなっていますか?私たちはすべてのタイプに同じ情報を保存していますが、それを異なって使用しています
-
26-10-2019 - |
質問
だから私はSTIがこれまでで最も非難されたものであることを知っていますが、私はそれが実際に理にかなっているかもしれないと思う例を持っています。私のアプリは、さまざまな種類のXMLファイルの束を解析しています。すべてのファイルモデルは、まったく同じ情報を保存します。どのユーザーに関連付けられているか、アップロードされた場合、およびS3に保存される場所についての情報。
XMLファイルが保存された後、他のさまざまなモデルを作成するために使用する情報を解析します。各タイプのファイルは異なるものを作成します。 100種類以上の種類のXMLファイルがある可能性がありますが、私はそれほど多くのためにパーサーを書くつもりはないと思います。この場合、STIは理にかなっていますか?
私が推測する欠点は、モデルがすべて1つのディレクトリにあるため、ハッキングレールをハッキングしてモデルDIRのサブディールに貼り付けない限り、そのディレクトリをあふれさせます。
もう1つのオプションは、私が親切なフィールドを持っていて、これをすべて処理する何かをlibディレクトリに置くことです。または、リクを使用しています。たぶん、すべてのXMLファイルパーサーは自分の仕事である必要があります。レールズコンソールで仕事を強制するのはちょっと厄介なようなものですが、それには欠点があります。
解決
説明から、「ファイル」モデルは、ファイルアップロードプロセスと関連するメタデータの結果のみを保存しています。解析されたXMLデータから他の種類のモデルが生成されていることに関する詳細情報がなければ、単一テーブルの継承がこのユースケースに適用される理由はわかりません。
所属していません StackOverflow