更多的信息,这里是我会怎样构建的初始模式:
class Product < ActiveRecord::Base
belongs_to :manufacturer
belongs_to :category
end
class Manufacturer < ActiveRecord::Base
has_many :products
end
class Category < ActiveRecord::Base
has_many :products
end
至于rating
,您是否要创建模型取决于如何填充等级。如果评级由单一来源决定,那么我只会将其作为产品模型中的一个属性进行存储。如果评分是根据用户输入计算得出的,则可以考虑使用ratings table
即belongs_to :product
。
关于价格,听起来最好的办法是将价格存储在Product model
。我将存储价格与8位精度和2的比例小数,可与轨道发电机rails g migration AddPriceToProducts price:decimal{8.2}
或直接在这样的迁移来完成:
class AddPriceToProducts < ActiveRecord::Migration
def change
add_column :products, :price, :integer{8.2}
end
end
这将价格存储为BigDecimal
,允许小数点左边的6位数字和右边的2位数字。最后,如果你的应用程序打算销售产品,我建议有一个名为InvoiceProducts
或类似的表格,它可以在产品销售时存储产品价格。随着产品价格变化或产品退役,这将允许准确的长期数据。
尝试阅读关于连接表和外键的更多信息。请参阅[本教程](http://www.theodinproject.com/ruby-on-rails/active-record-associations)。 –
我一定会阅读更多。谢谢你的链接。 – Riggs