「グリーン 特大 Tシャツ」などの商品を販売するオンラインストアを構築しています。つまり、同じシャツでもサイズや色が異なる場合があり、組み合わせによって売り切れたり、組み合わせによって価格が異なる場合があります。
私の質問は、Rails アプリケーションでこれらの製品をどのようにモデル化する必要があるか (または、どのアプリケーションでどのようにモデル化するか) です。
私の現在の考えは次のとおりです。
Class Product
has_many :variants, :through => :characteristics
has_many :characteristics
end
Class Characteristic
belongs_to :product
belongs_to :variants
end
Class Variant
has_many :products, :through => :characteristics
belongs_to :characteristic
end
したがって、各製品には 1 つ以上の特性 (「色」、「サイズ」など) があり、各特性には 1 つ以上のバリエーション (「赤」、「青」など) があります。
この方法の問題点は、価格と在庫をどこに保管するかということです。つまり、特定の製品の価格と在庫は、その特性が取るバリアントによって決定されます。(緑は赤よりも高価である可能性があり、大型は在庫がない可能性があるなど).
私が考えた 1 つの考えは、製品に「base_price」を与え、バリエーションでそれを変更できるようにすることでしたが、これは非常に複雑に思えます (そしてうまくいかないかもしれません)。