hasMany('Group','Groupuser.group_id'); } public function setTableDefinition() { $this->hasColumn('name','string',30); } } class Group extends Doctrine_Record { public function setUp() { $this->hasMany('User','Groupuser.user_id'); } public function setTableDefinition() { $this->hasColumn('name','string',30); } } class Groupuser extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('user_id','integer'); $this->hasColumn('group_id','integer'); } } $user = new User(); // add two groups $user->Group[0]->name = 'First Group'; $user->Group[1]->name = 'Second Group'; // save changes into database $user->save(); // deleting the associations between user and groups it belongs to $user->Groupuser->delete(); $groups = new Doctrine_Collection($conn->getTable('Group')); $groups[0]->name = 'Third Group'; $groups[1]->name = 'Fourth Group'; $user->Group[2] = $groups[0]; // $user will now have 3 groups $user->Group = $groups; // $user will now have two groups 'Third Group' and 'Fourth Group' ?>