I would say it depends on how you'll be retrieving the data. If you
will only ever be retrieving a pair of records in one "direction" --
then only define the relationship you'll actually use. Also, if you'll
be depending on scaffolding or baking, I'd say define both and refine
later.
On Jun 5, 8:12 pm, Shane B <[EMAIL PROTECTED]> wrote:
> Thanks, I will give this a shot.
>
> Quick question:
>
> Is it customary to set both $hasMany/One AND $belongsTo? It seems
> somewhat redundant.
>
> Thanks,
>
> Shane
>
> On Jun 4, 2:03 pm, Joshua Benner <[EMAIL PROTECTED]> wrote:
>
> > Remeber, has(One|Many) means "The other table points to me," and belongsTo
> > means "I point to the other table." I would define the models something
> > like this (assume fields basically same as you said):
> > User:
> > hasMany Items
> > Item:
> > belongsTo User
> > hasMany Trades
> > Trade:
> > belongsTo Item1
> > belongsTo Item2
> > Personally, I would not put the users in the trades table, but that may
> > make things more easy in the code, depending on your approach to some
> > things.
> > CODE:
> > class User extends AppModel {
> > var $name = 'User';
> > var $hasMany = array( 'Item' => array( 'className' => 'Item' ) );
> > }
> > class Item extends AppModel {
> > var $name = 'Item';
> > var $belongsTo = array( 'User' => array( 'className' => 'User' ) );
> > var $hasMany = array( 'Trade' => array( 'className' => 'Trade' ) );
> > }
> > class Trade extends AppModel {
> > var $name = 'Trade';
> > var $belongsTo = array( 'Item1' => array( 'className' => 'Item',
> > 'foreignKey' => 'item1' ),
> > 'Item2' => array( 'className' => 'Item',
> > 'foreignKey' => 'item2' ));
> > }
> > In my experience (take with grain of salt), when retrieving Trade rows with
> > find/findAll with a recursive setting of 3 (possibly 2?), you should have
> > result rows that look something like this:
> > Array
> > (
> > [Trade] => Array
> > (
> > ... normal trade fields ...
> > )
> > [Item1] => Array
> > (
> > ...item fields...
> > [User] => Array
> > (
> > ...user fields...
> > )
> > )
> > [Item2] => Array
> > (
> > ...item fields...
> > [User] => Array
> > (
> > ...user fields...
> > )
> > )
> > )
> > Shane B wrote:So I am no DBA, and this is my first CakePHP app, still
> > learning the ins and outs, maybe there is an easy way to do this.. Here is
> > the setup: Assume these psudo-tables: Users --------- id - pk username
> > password email name Items --------- id - pk user_id - fk title description
> > status And the idea of the site is that people put items up, and can trade
> > them, so i'd like a trades table to keep track of live trades in progress.
> > So essentially I need: Trades ---------- id - pk item1 item2 user1 user2
> > status HOWEVER, I'd like to use foreign keys instead of the item1 and 2 to
> > more easily work with the data and to allow it to bake correctly. The catch
> > here though is that this would work perfectly with 1 item since I could
> > just associate using item_id, though I can't have TWO item_id fields so how
> > will I reference to unique items in the same table? Also, correct me if I'm
> > wrong but I probably don't even need user1 and 2 since they're associated
> > in the Items table already. Is there any easy way to do this in CakePHP so
> > that bake should work? I read but did not completely comprehend the
> > $hasMany var in the Model chapter of the manual, might this be the key to
> > figuring this out? Any help would be appreciated. I bring this up not only
> > for this project, but to learn how to do things RIGHT with CakePHP, for
> > future projects as well. Thanks.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---