0

我不确定我是否可以通过我的协会完成我想要的。

这是我想要在我的应用程序中的场景:

用户将选择一个商店。然后在该商店内,用户选择产品,然后可以为该产品添加新价格。

class Business < ActiveRecord::Base
  has_many :stores
end

class Store < ActiveRecord::Base
  belongs_to :business
  has_many :prices
end 

class User < ActiveRecord::Base
  has_many :prices, :dependent => :destroy
  has_many :products, :through => :prices
end

class Price < ActiveRecord::Base
  belongs_to :user
  belongs_to :product
  belongs_to :store
end

class Product < ActiveRecord::Base
  has_many :prices
  has_many :users, :through => :prices
end

我不确定这是否正确,因为产品不属于商店(integer store_id在表格中)。

我需要做什么才能使这种情况得以解决?这是正确的设计吗?

4

1 回答 1

1

对于您正在尝试做的事情,这是一个很好且正确的设计。

如果产品属于一家商店,那么该产品只能在一家商店。由于商店可能有许多产品,并且产品可能在许多商店出售,因此您需要另一个表来引用产品和商店。

于 2012-05-10T16:46:32.133 回答