Ruby on rails 多对多数据模型之谜
给定的Ruby on rails 多对多数据模型之谜,ruby-on-rails,database-design,activerecord,associations,rails-activerecord,Ruby On Rails,Database Design,Activerecord,Associations,Rails Activerecord,给定的 3ActiveRecord型号: class Dealer < ActiveRecord::Base end class CarMake < ActiveRecord::Base has_many :car_models end class CarModel < ActiveRecord::Base belongs_to :car_make end 我想做的是: dealer1.his_makes # => [Ford, Chevrolet, Me
ActiveRecord
型号:
class Dealer < ActiveRecord::Base
end
class CarMake < ActiveRecord::Base
has_many :car_models
end
class CarModel < ActiveRecord::Base
belongs_to :car_make
end
我想做的是:
dealer1.his_makes # => [Ford, Chevrolet, Mercury]
dealer1.his_models # => [Flex, Fiesta, Impala, Milan]
dealer2.his_makes # => [Ford, Mercury, Nissan]
dealer2.his_models # => [Fiesta, Focus, Altima]
我的问题是:我应该添加哪些关联/表来实现这一点?添加属于经销商、CarModel和CarMake的库存模型。为了好玩,在“数量”字段中输入
您可能会争辩说CarModel是没有必要的,但如果这是一个常见的查询,似乎是一个合理的反规范化点。经销商和汽车制造商之间的联接表允许您指定“经销商期望的汽车制造商”。如果所有需要的型号都是此表中指定的品牌,那么我将在DealerCharmakes和CarModels之间创建一个联接表,为该经销商指定该品牌所需的型号 虽然您可以使用单个表,但会出现一些问题:
dealer1.his_makes # => [Ford, Chevrolet, Mercury]
dealer1.his_models # => [Flex, Fiesta, Impala, Milan]
dealer2.his_makes # => [Ford, Mercury, Nissan]
dealer2.his_models # => [Fiesta, Focus, Altima]