【发布时间】:2012-11-12 23:40:22
【问题描述】:
我正在开发一个显示产品的应用。每个产品都是一个型号(产品),包含一些常见信息,如名称、品牌等。为了区分我们正在查看的产品类型,我们有一个 product_type(如:电话、电视、沙发等)这基本上是一个 tinyint 字段(例如 1 = 电话,2 = 电视)。
现在,根据 product_type,每个产品可以有不同的选项:如果是手机,产品应该有相关的额外信息(如重量、是否有 LTE、是否有前置相机等),电视应该有显示尺寸等信息。
我的问题是:根据产品的类型,将这些额外数据添加到产品的最佳/或/最简单方法是什么?
我正在考虑使用一个额外的模型 ProductOptions 字段 product_id、option_type、option_value (VARCHAR) 来存储额外的字段,但我不确定这对于性能和搜索是否是可选的。在这种情况下,搜索意味着查找所有符合给定条件的 ProductOptions(例如 po = ProductOption.where(:option_type => "LTE", :option_value => "yes") ),然后执行 Product.findAllIn(po) 以查找实际产品。
或者我应该使用 Postgres 并使用 HStore? HStore 搜索效率高吗?
有什么想法吗?
Rails 新手,所有代码都是伪代码
【问题讨论】:
标签: ruby-on-rails database-design activerecord