1. Many times I create a complete MVC for the join table, especially when I need to build complicated/flexible admin interfaces to work directly with additional fields in the join table. 2. I am not sure if cake can handle compound primary key of more than 2 foreign keys. HABTM is only meant for 2 entities. How can you tell cake to handle a relationship of more than 2 entities (i.e. the join table has 3 or more foreign keys)?
Zonium On 30 Tháng Tư, 15:23, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > The only real downsides I can see other than complicated code is that > join tables will have a compound primary key which I don't think cake > can handle very well (ie a primary key of (user_id,post_id)). if > instead you use a primary key of id to get around this, and use > user_id and post_id as just regular fields, you could very easily end > up with duplicate data in your table if you aren't careful(ie two rows > where id is different but user_id, post_id are the same). This will > cause even more problems when you are trying to delete the M2M > relationship, if there are multiple entries for the relationship, when > you delete one the others will remain. Also, if you have related data > in the join table and you try to grab it by finding the join table > entry where user_id=$desiredUID AND post_id=$desiredPID, if there are > multiple entries in the table that satisfy these conditions, then the > data pulled may be incorrect. This seems like a data validation > nightmare to me and using Cakes HABTM relationship takes care of all > of these problems. > > Also, I don't see why you'd ever want a controller functions for a > join table though. The only time you'd need controller functions for a > join table is if you were rendering a view for the join table and > you'd definitely never want to do that. If you really wanted functions > relating to the join table, they should be defined in the model of the > related table and called from the controller that will be rendering > the view. > > Restating though, Any data that is related to the join table can be > accessesed through a related model using the "with" function so any > functions acting on the join table data could be easily implemented in > the related Model. > > On Apr 30, 3:57 pm, validkeys <[EMAIL PROTECTED]> wrote: > > > I did it the way that i did it so that I could write controller > > actions in the join table controller vs. in the relational tables. I > > guess you could just write those actions in the M2M controllers, but > > is it not cleaner to write those controller actions directly in the > > controller of the join table? Also, it keeps it clean with regards to > > creating custom model queries for the join table. > > > David, as we are all trying to learn here, are their any definite > > downsides to the way that I am doing it besides the output data? > > > Thanks! > > > On Apr 30, 5:37 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > > wrote: > > > > The way that validkeys describes is the exact same way that CakePHP > > > implements a HABTM relationship. It uses a join table just as > > > described. There really is no need to do it the way validkeys > > > describes, you don't need a controller and model for the join table, > > > it will just make your output data and query conditions that much more > > > complicated. If you need to get at extra data in the join table (data > > > other than the primary key) use the "with" key in the HABTM > > > relationship definition. > > > > On Apr 30, 2:58 pm, validkeys <[EMAIL PROTECTED]> wrote: > > > > > JoC, > > > > > HABTM are good, but another way that I have been modeling M2M > > > > relationships is the following: > > > > > assume we had students and classes. One class has many students and > > > > one student is in many classes > > > > > classes ------> | classes_students | <---------- students > > > > > 1. create tables for classes, classes_students and students > > > > 2. Create models and controllers for all 3 tables (note that the Model > > > > for the classes_students would be ClassesStudent) > > > > > Your classes and students models would have many classes_students > > > > > Your classes_students model would belong to classes and students. > > > > > Thats another way to set up the M2M relationship. > > > > > On Apr 29, 11:07 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > > > > wrote: > > > > > > Cake can handle a many to many relationship just fine. Do a search for > > > > > HABTM (has and belongs to many) relationship to learn more about how > > > > > to do this. Cake has sort of a steep learning curve, especially if you > > > > > aren't familiar with MVC and OO programming. So, In my opinion Cake > > > > > will make this task MUCH easier for someone well versed in Cake or at > > > > > least well versed in MVC/OO. If you are just learning it will probably > > > > > make the task moderately easier but any future web programming you do > > > > > with it will be much easier and faster with Cake than developing > > > > > without a framework. > > > > > > Dave > > > > > > On Apr 29, 8:10 am, JoC <[EMAIL PROTECTED]> wrote: > > > > > > > Hello all, > > > > > > I am trying to write a maintenance software for a generator > > > > > > distributing company. > > > > > > The company works the following way > > > > > > > 1 site has many generators > > > > > > 1 generators has 1 manufacturer and many parts > > > > > > 1 part has many generators > > > > > > 1 manufacturer has many generators and many models > > > > > > 1 model has one manufacturer > > > > > > 1 part works for many generators > > > > > > 1 manufacturer makes many models > > > > > > . > > > > > > . > > > > > > . > > > > > > > Anyways as you can see is a very complex system. To which then we > > > > > > will > > > > > > add work orders, maintenance, etc.. > > > > > > My questions is, will cake PHP make my life easier or harder I have > > > > > > been working with it for about 1 week and so far its been ok until I > > > > > > introduced the above concept today of many parts to many generators > > > > > > etc then it got really complex. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com 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 -~----------~----~----~----~------~----~------~--~---