在Rails中多对多关联通过在关联表对应的类中声明has_and_belongs_to_many来实现。
在数据库中,多对多关联使用中间表来实现,表中包括关联表的主键,Active Record假定这个中间表的名字是由关联表的名字根据字母的顺序串联起来得到的。例如,关联表为categories和products,中间表的名字就是categories_products。
注意我们的关联表没有id列,有两个原因,首先,不需要一个唯一的标识来识别两个外键之间的连接,我们定义表的语句像下面这样:
create table categories_products (
category_id int not null,
product_id int not null,
constraint fk_cp_category foreign key (category_id) references categories(id),
constraint fk_cp_product foreign