我需要在数据库中存储一个价格表。
存储价格表的最佳方法是什么?
价格表的例子:
我想到了2个解决方案。
创建一个名为products的表,其中包含以下列:
name (varchar)
price (integer)
price_2 (integer)
该名称将是例如“product_a1”,用于指代YAML翻译文件。
然后创建产品的所有名称。在我的例子中,例如约有100个。
解决方案2:
将所有数据存储在一行中。所以表格列是:
product_a1
product_a2
product_a3
product_b1
product_b1_2
product_b2
product_b2_2
还有99个..
PS:我只有1个价目表
答案 0 :(得分:1)
为什么不使用Entity–attribute–value model(EAV),这样您就可以根据需要在模型上获得尽可能多的属性。它为您提供了极大的灵活性,因此将来您可以动态添加更多属性,而无需重构代码。
答案 1 :(得分:0)
为什么不创建两个表之间有关系的表:
class Product < ActiveRecord::Base
has_many :prices
end
和
class Price < ActiveRecord::Base
belongs_to: :product
end
这使您可以根据需要灵活地在将来添加其他价格。我不愿对具有固定限制的数据库进行硬编码。