印刷会社のWebアプリケーションを構築していて、自分のデータベースに最適なデザインを決定しようとしています。この注文状況のデータベーステーブルを設定するには
私はorders
テーブルを持っています。各order
には多くの証明があります。しかし、電子証明と物理証明の2種類の証明があります。さらに、電子証拠であれば、イメージソースを保管する必要があります。その証拠があれば、追跡番号を保管する必要があります。
すべての証拠には、多くのコメントが関連付けられています。
proofs
テーブルと1つのcomments
テーブルを持つことができればいいですが、プルーフタイプに基づいてイメージソースとトラッキング番号を追跡する最良の方法は何ですか?
私はelectronic_proofs
とphysical_proofs
のための別々のテーブルを作成すると考えられてきたが、それは別のelectronic_proof_comments
テーブルとphysical_proof_comments
テーブルを作る必要であろう。
もう1つのオプションは、proofs
という単一のテーブルを持つことです。この場合、単一のcomments
テーブルを持つことができます。しかし、それを見ると、それは3つのサポートテーブルproof_types
,image_sources
、およびtracking_numbers
を必要とします。
この問題を解決する最善の方法についてのご意見はありますか?
引用:「electronic_proofsとphysical_proofsのテーブルを別々に作成することを検討しましたが、別のelectronic_proof_commentsテーブルとphysical_proof_commentsテーブルを作成する必要があります。なぜそれをしないのですか?最も簡単な解決策のようです。 – Msonic
@Msonic:それには[多形連想](http://guides.rubyonrails.org/association_basics.html#polymorphic-associations)を使うことができます。 –
@Msonicこれについてもっと良い方法があるようです。私はそれをやっているように感じるので、必要なテーブルの数が多くなりすぎると面倒になります –