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' ?>