CakePHP модель вопрос, Как я могу сделать таблицу отношений для опросов и викторины? - PullRequest
0 голосов
/ 04 сентября 2011

Предположим, я хочу создать опросы и викторины с вопросом и несколькими вариантами ответов.

Нужно ли для этого создавать модель опроса?

Как я могу отслеживать процентный результат для каждого параметра в таблице опросов?

Должен ли я создать еще одну таблицу с вариантами ответов на опросы?

Какими будут отношения таблицы для вопросов и ответов на опросы?

Это правильный путь?

create table polls (id integer not null auto_increment primary key, question varchar(300) not null, mark tinyint not null, created datetime, modified datetime);

create table pollsanswers (id integer not null integer auto_increment primary key, poll_id integer not null, answer varchar(500) not null, mark tityint not null, created datetime, modified datetime);


create table quizes (id integer not null auto_increment primary key, question varchar(300) not null, mark tinyint not null, created datetime, modified datetime);

create table quizesanswers (id integer not null integer auto_increment primary key, quiz_id integer not null, answer varchar(500) not null, mark tityint not null, created datetime, modified datetime);

Если я сделаю опрос таблицы MySQL, то могу ли я получить доступ к этой таблице и использовать ее с записями или другим контроллером, или я должен создать polls_controller.php и модель poll.php?

Могу ли я сделать это без создания новой модели и контроллера?

1 Ответ

1 голос
/ 04 сентября 2011

Если бы это был я, я бы, вероятно, имел следующие таблицы:

create table polls (
  id integer not null auto_increment primary key, 
  created datetime, 
  modified datetime
);

create table quizzes (
  id integer not null auto_increment primary key,
  created datetime,
  modified datetime
);

create table questions (
  id integer not null auto_increment primary key,
  model varchar(255) not null, -- Poll or Quiz, in this scenario
  foreign_key integer not null,
  question varchar(255) not null,
  created datetime,
  modified datetime
);

create table answers (
  id integer not null auto_increment primary key,
  question_id integer not null,
  answer varchar(255) not null,
  created datetime,
  modified datetime
);

Мои ассоциации, вероятно, будут такими:

Poll hasMany Question
Quiz hasMany Question
Question belongsTo Poll, Quiz
Question hasOne Answer
Answer belongsTo Question

Поскольку и в опросах, и в опросах есть вопросы по компонентам, я постараюсь закрепить этот аспект. Чтобы учесть оба отношения, я бы сделал Question полиморфным .

...