Testing On Jun 8, 4:29 pm, Joshua Benner <[EMAIL PROTECTED]> wrote: > Well, the most direct answer: > > Items belongsTo Types > Types hasAndBelongsToMany Questions > Questions hasAndBelongsToMany Answers > (you can add relations in the other direction, too) > > Then when you retrieve an item, you would need recursive=3, and you'd > have access to all the data in an array following the association hierarchy. > > Now, I don't know the specific application you're working on, but my > instinct suggests that you might not want to be pulling every question > for each type that any given item is related to. So I would pull items > with recurisve=1, provide links to the types, and pull types one at a > time based on user input with the appropriate recursive setting for the > display you want to generate. > > Remember to try not to pull way more data than you will use or display, > and don't define associations just for the heck of it if you're not > going to use them. Also remember two-way associations can be weird with > higher recursion settings, causing a lot of extra queries to the database. > > If you would like to describe your application and the target interface > a little, maybe we could help you narrow down your implementation options. > > > > Joey wrote: > > Ok here is the scenario. > > > There will be "Items" that are of a "Type" and each "Type" has it own > > "Questions" and the "Questions" have their own "Answers". So how do I > > store the "Answers" chosen for each "Question" for each "Item". > > > The table structure so far is below. Let me know if this doesn't make > > sense, or if I am going about this wrong. > > > Thanks, > > Joey > > > CREATE TABLE `items` ( > > `id` int(11) NOT NULL auto_increment, > > `type_id` int(11) NOT NULL, > > `title` varchar(255) default NULL, > > `description` mediumtext, > > `date` datetime NOT NULL, > > PRIMARY KEY (`id`), > > KEY `type_id` (`type_id`) > > ) > > > CREATE TABLE `types` ( > > `id` int(11) NOT NULL auto_increment, > > `name` varchar(100) NOT NULL, > > PRIMARY KEY (`id`) > > ) > > > CREATE TABLE `questions` ( > > `id` int(11) NOT NULL auto_increment, > > `question` mediumtext NOT NULL, > > PRIMARY KEY (`id`) > > ) > > > CREATE TABLE `answers` ( > > `id` int(11) NOT NULL auto_increment, > > `answer` mediumtext NOT NULL, > > PRIMARY KEY (`id`) > > ) > > > CREATE TABLE `answers_questions` ( > > `answer_id` int(11) NOT NULL, > > `question_id` int(11) NOT NULL, > > `order` int(11) default NULL, > > PRIMARY KEY (`answer_id`,`question_id`) > > ) > > > CREATE TABLE `questions_types` ( > > `question_id` int(11) NOT NULL, > > `type_id` int(11) NOT NULL, > > `order` int(11) default NULL, > > PRIMARY KEY (`question_id`,`type_id`) > > ) > > -- > Joshua Bennerhttp://bennerweb.com
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Cake PHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
