Hello people. I agree with Baz. It's simply a question of Data Design.
You should create a relationship table where you can map all relations. You could even add a new field and make diferent type os relationship (like buddies, family, coworkers, something like that). Sometimes it's simply better to make the querys and merge the info. And a lot faster too. Just my two cents :) Zen On Nov 13, 2007 6:00 AM, Baz <[EMAIL PROTECTED]> wrote: > Yes, > > It is a database design question. > > No you can't relate them in the users table because a user can have more > than one friend. I think this is what they are suggesting: > > Table: friends_users > id - int > user_id - int > friend_id - int > > > In this case, I don't think you would use a *friends* table. When looking > up user with id = 1, you'd have to query his friends separately. Without > giving it too much thought, there would be two queries for his friends: > > select friend_id from user_friend where user_id = 1 > and > select user_id from user_friend where friend_id = 1 > > Off the top of my head, I would perform these two searches in my > controller and merge both results into an array. But that's just my lazy > code talking. Keep in mind, I'm not too good with the HABTM association. > > Good luck > -- > Baz L > Web Development 2.0: Web Design, CakePHP, Javascript > http://www.WebDevelopment2.com/ > > On Nov 12, 2007 9:42 PM, mbavio < [EMAIL PROTECTED]> wrote: > > > > > Baz, > > > > Thanks for your quickly answer. By the way, I´ve read your blog. Great > > articles! > > > > Going back to my problem... > > > > Beyond making Bob and Tim friends, what I wanna know is what to put in > > the Friends table... The IDs of the Users again? Isnt that a useless > > repetition? Cant I simply relate the Users in the same table? I think > > this issue is beyond I´m using Cake, Ruby or Assembler... It´s a > > question of database design, and I´m simply lost... Any brillant idea? > > > > Martin Bavio > > > > On Nov 13, 12:24 am, Baz < [EMAIL PROTECTED]> wrote: > > > Hmmmph, > > > > > > I was wondering that myself. The easy way is to do what's suggested > > above, > > > but duplicate and entry for each relationship: > > > > > > Eg. When Bob becomes Tim's friend (in the before/afterSave) force and > > entry > > > that makes Tim Bob's friend. > > > > > > Of you could have one relationship and simply check the "other > > direction" > > > logically in your controllers. But I don't think there are any easy > > Cake > > > answers. > > > -- > > > Baz L > > > Web Development 2.0: Web Design, CakePHP, > > Javascripthttp://www.WebDevelopment2.com/ > > > > > > On Nov 12, 2007 9:14 PM, mbavio < [EMAIL PROTECTED]> wrote: > > > > > > > > > > > > > Christopher: > > > > > > > I understand the basics behind Cake´s HATBM, but I do not understand > > > > how to implement here... You have to notice that "Friends" are also > > > > "Users", so I dont know how to build the tables. Should I put the > > same > > > > id in both tables? If not, what is the primary key in the "Friends" > > > > table? > > > > This case is typical in a CMS, where you want to let the user make > > > > "friends" in the community. Anybody who has solved this particular > > > > problem? > > > > > > > Thanks. > > > > > > > On Nov 12, 7:43 pm, "Christopher E. Franklin, Sr." > > > > <[EMAIL PROTECTED]> wrote: > > > > > Yes, this is a HABTM relationship both ways between friends and > > > > > users. Define the $hasAndBelongsToMany variable at the top of > > each > > > > > model appropriately and then make an extra db table named: > > > > > friends_users and within the table, you will have two fields, > > > > > friend_id and user_id. > > > > > > > > After you have a few users and friends, if you want to see a > > user's > > > > > friend of a friend of a friend, you use, the recursive option for > > the > > > > > model: > > > > > eg- > > > > > $this->User->recursive = 1; > > > > > > > > The higher you go, the more levels deep will get returned > > > > > > > > On Nov 12, 2:20 pm, mbavio <[EMAIL PROTECTED]> wrote: > > > > > > > > > I have a 'User' model, and I want that my Users can have > > Friends, > > > > > > being Friends other Users. Is this a "self HATBM"? How can I > > solve > > > > > > this problem? > > > > > > > > > Thanks. > > > > > > > > > > -- ----------------- ----------------- --------------- name: Ricardo Valfreixo e-mail: [EMAIL PROTECTED] msn: [EMAIL PROTECTED] ----------------- ----------------- --------------- --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
