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