我有3个模型类别,问题和测验以及5个表类别,问题,测验,category_quizzes和questions_quizzes。
测验有很多问题,可能属于零个或多个类别。此问题可能属于许多测验
有些机构可以建议应该如何建立模型之间的关系
表模式如下
CREATE TABLE categories (
id int(11) unsigned NOT NULL auto_increment,
title varchar(255) NOT NULL,
PRIMARY KEY (id),
);
CREATE TABLE category_quizzes (
id int(11) unsigned NOT NULL auto_increment,
category_id int(11) unsigned NOT NULL,
quiz_id int(11) unsigned NOT NULL,
PRIMARY KEY (id),
KEY category_id (category_id,quiz_id),
KEY quiz_id (quiz_id)
);
CREATE TABLE questions (
id int(11) unsigned NOT NULL auto_increment,
question varchar(255) NOT NULL,
answer varchar(255) NOT NULL,
PRIMARY KEY (id),
);
CREATE TABLE questions_quizzes (
id int(11) unsigned NOT NULL auto_increment,
quiz_id int(11) unsigned NOT NULL,
question_id int(11) unsigned NOT NULL,
PRIMARY KEY (id),
KEY quiz_id (quiz_id,question_id),
KEY question_id (question_id)
);
CREATE TABLE quizzes (
id int(11) unsigned NOT NULL auto_increment,
title varchar(255) NOT NULL,
PRIMARY KEY (id),
);
我目前的模特课程
class Category < ActiveRecord::Base
has_and_belongs_to_many :quiz
end
class Question < ActiveRecord::Base
has_and_belongs_to_many :quiz
end
class Quiz < ActiveRecord::Base
has_many :questions
has_and_belongs_to_many :categories
end
答案 0 :(得分:0)
表category_quizzes的迁移不正确。它应该是categories_quizzes,都是复数形式。
然后你可以指定这样的关联:
class Category < ActiveRecord::Base
has_and_belongs_to_many :quizzes
end
class Question < ActiveRecord::Base
has_and_belongs_to_many :quizzes
end
class Quiz < ActiveRecord::Base
has_and_belongs_to_many :questions
has_and_belongs_to_many :categories
end
编辑:根据您的评论更改关联