Productsを表示するアプリに取り組んでいます。各製品は、名前、ブランドなどのいくつかの共通情報を持つモデル (製品) です。見ている製品の種類を区別するために、基本的に tinyint フィールドであるproduct_type (電話、テレビ、ソファなど) があります (例: 1 = 電話、2 = テレビ)。
ここで、product_type に応じて、各製品は異なるオプションを持つことができます。電話の場合、製品には追加情報が関連付けられている必要があります (重量、LTE があるか、前面カメラがあるかなど)、テレビには次のような情報が必要です。表示サイズなど。
私の質問は次のとおりです。製品のタイプに応じて、この追加データを製品に追加するための最良/または/最も簡単な方法は何ですか?
追加のフィールドを格納するフィールド product_id、option_type、option_value (VARCHAR) を持つ追加のモデルProductOptionsを持つことを考えていましたが、これがパフォーマンスと検索のオプションであるかどうかはわかりません。po = ProductOption.where(:option_type => "LTE", :option_value => "yes")
この場合、検索とは、特定の基準 (例: ) に一致するすべての ProductOptions をProduct.findAllIn(po)
見つけてから、実際の製品を見つけるために を実行することを意味します。
または、Postgres を使用して HStore を使用する必要がありますか? HStore は検索時に効率的ですか?
何か案は?
Rails初心者、すべてのコードは疑似コードです