Столкнулся вот с каким вопросом.
Связанные таблицы типа Post-PostTag-Tag я научился делать, причем yiic их воспринимает без проблем и прописывает связи между таблицами.
Есть ли возможность сделать связь типа Pstest-PstestQuestion-Question-QuiestionAnswer-Answer и работать с ней в одном контроллере PstestController?
Вот дамп базы данных:
CREATE TABLE `Pstest` (
`id` int(11) unsigned NOT NULL auto_increment,
`userUid` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (userUid) REFERENCES User(uid)',
`title` varchar(128) NOT NULL,
`description` text NOT NULL,
`tags` text,
`status` int(11) unsigned NOT NULL,
`createTime` int(11) unsigned default NULL,
`updateTime` int(11) unsigned default NULL,
`questions` text,
`results` text,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `User` (
`uid` int(11) unsigned NOT NULL auto_increment,
`name` varchar(128) NOT NULL,
`password` varchar(128) NOT NULL,
`email` varchar(128) NOT NULL,
PRIMARY KEY (`uid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `Answer` (
`id` int(11) unsigned NOT NULL auto_increment,
`Answer` text NOT NULL,
`Point` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `Question` (
`id` int(11) unsigned NOT NULL auto_increment,
`question` text NOT NULL,
`multichoice` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `Result` (
`id` int(11) unsigned NOT NULL auto_increment,
`result` text NOT NULL,
`min` int(11) unsigned NOT NULL,
`max` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `Tag` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(128) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `PstestQuestion` (
`pstestId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (pstestId) REFERENCES Pstest(id)',
`questionId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (questionId) REFERENCES Question(id)',
PRIMARY KEY (`pstestId`,`questionId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `PstestResult` (
`pstestId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (pstestId) REFERENCES Pstest(id)',
`resultId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (resultId) REFERENCES Result(id)',
PRIMARY KEY (`resultId`,`pstestId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `PstestTag` (
`pstestId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (pstestId) REFERENCES Pstest(id)',
`tagId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (tagId) REFERENCES Tag(id)',
PRIMARY KEY (`pstestId`,`tagId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `QuestionAnswer` (
`questionId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (questionId) REFERENCES Question(id)',
`answerId` int(11) unsigned NOT NULL COMMENT 'CONSTRAINT FOREIGN KEY (answerId) REFERENCES Answer(id)',
PRIMARY KEY (`answerId`,`questionId`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Метод создания базы данных вида, который хорошо определяется yiic брал здесь здесь. График сделаю немного позже, но, надеюсь, что и так подскажете.
Заранее благодарен всем откликнувшимся.