Your code looks right, but you could combine main and sub categories into a Category table that uses Tree behavior. Then a recipe would HABTM categories, and subcategories could have sub-subcategories.
/alastair/ On May 28, 7:03 am, Luke <[email protected]> wrote: > Hi, > > I am still a Cake newbie, but maybe someone give me a hint on my > issue. I am trying to learn cake by developing a recipe site. > > There are Maincategories and Subcategories. > F.e. > > BBQ -> (Pork, Beef, Vegetarian) > Main Dish -> (Vegetarian....) > > A recipe can belong to different Categories, so a "Steak" could show > up under "BBQ" and "Main Dish" and there under Beef. > > I'm planing to have a Form which reads out the Maincategories from the > DB and when you click on a checkbox, the subcategories should show up > (AJAX Request?) > > I have been thinking about the DB Design now for a while and thought I > first had a solution. Than I got doubts and re-designed the tables and > the models. I am now rather confused if this design is correct and > would hope that someone could give some feedback. Okay, here the > tables: > =================== > maincategories *** this table is filled manually > - id > - maincategory > =================== > subcategories *** this table is filled manually > - id > - subcategory > - maincategory_id > =================== > recipes_subcategories ** this will be filled in when Add Recipe Form > was send off > - id > - subcategory_id > - recipe_id > =================== > recipes ** this will be filled in when Add Recipe Form was send off > - id > - recipename > =================== > > My Models: > > ====== Recipe Model > ======================================================= > class Recipe extends AppModel { > var $name = 'Recipe'; > var $belongsTo = array( > 'User' => array( > 'className' > => 'User' > ) > ); > > var $hasAndBelongsToMany = array( > 'Subcategory' > => > > array( > > 'className' => 'Subcategory', > > 'joinTable' => 'recipes_subcategories', > > 'foreignKey' => 'recipe_id', > > 'associationForeignKey' => 'subcategory_id' > > ) > ); > > ============================================================================ > > ====== Subcategory Model > ======================================================= > class Subcategory extends AppModel { > var $name = 'Subcategory'; > var $belongsTo = array('Maincategory'); > var $hasAndBelongsToMany = array( > > 'Recipe' => > > array( > > 'className' => 'Recipe', > > 'joinTable' => 'recipes_subcategories', > > 'foreignKey' => 'subcategory_id', > > 'associationForeignKey' => 'recipe_id' > > ) > ); > > } > > Is this setup correct or any advice how it should look instead? Thanks > a lot in advance. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" 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 -~----------~----~----~----~------~----~------~--~---
