我正在建立一个在线商店来销售“绿色超大号 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
因此,每个产品将具有一个或多个特性(例如,“颜色”、“尺寸”等),然后每个特性将具有一个或多个变体(例如,“红色”、“蓝色”等)。
这种方法的问题是我在哪里存储价格和库存?即,给定产品的价格和库存由其特征所采用的变体决定。(绿色可能比红色贵,大的可能缺货等)。
我的一个想法是给产品一个“base_price”,并让变体修改它,但这似乎过于复杂(并且可能不起作用)。