鉴于
3个ActiveRecord
型号:
class Dealer < ActiveRecord::Base
end
class CarMake < ActiveRecord::Base
has_many :car_models
end
class CarModel < ActiveRecord::Base
belongs_to :car_make
end
CarMake
或CarModel
应该有额外的外键(使品牌/模型的管理处于独立和独立状态),问题
我需要经销商为每个分配的car_makes
分配一个可用的car_models
子集和所需的car_make
子集。
示例
鉴于此数据:
car_models car_makes
------------------------ -------------
id car_make_id title id title
1 1 Flex 1 Ford
2 1 Fiesta 2 Chevrolet
3 1 Focus 3 Mercury
4 2 Impala 4 Nissan
5 2 Suburan
6 3 Milan
7 4 Altima
我想做的是:
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]
我的问题是:
我应该添加哪些关联/表来实现此目标?。
答案 0 :(得分:1)
添加属于经销商,CarModel和CarMake的库存模型。为了好玩而折腾在“数量”领域。
你可能会认为CarModel不是必需的,但如果它是一个常见的查询,似乎是一个合理的去标准化点。
答案 1 :(得分:0)
经销商和汽车制造商之间的连接表将允许您指定&#34;经销商所需的汽车制造商#34;。如果所有需要的模型都是此表中指定的品牌,那么我将在DealerCarMakes和CarModels之间创建一个连接表,为该经销商指定所需的模型。
虽然您可以使用单个表,但会出现一些问题: