2015-10-28 87 views
1

什麼是在教條中創建好友關係的最佳方式。最佳實踐原則用戶朋友關係

我遵循以下的方式。

User.xml.orm:

<many-to-many field="friends" target-entity="MyEntity\User"> 
     <join-table name="my_friends"> 
      <join-columns> 
       <join-column name="idAUsers" referenced-column-name="id" on-delete="CASCADE" nullable="false" /> 
      </join-columns> 
      <inverse-join-columns> 
       <join-column name="idBUsers" referenced-column-name="id" on-delete="CASCADE" nullable="false" /> 
      </inverse-join-columns> 
     </join-table> 
    </many-to-many> 

user.php的

public function getFriends() { 
    $friends = $this->getAUsers(); 
    foreach ($this->getBUsers() as $bUser) { 
     $friends[] = $bUser; 
    } 
    return $friends; 
} 

正如你看到的,我需要合併兩個UserFriend並加入每次都當創建一個查詢。

回答

5

您應該使用多對多的自引用。

doctrine documentation example看起來很適合,因爲它正好處理您的情況。

+0

謝謝。我可以與此合作,但當我正確理解這一點時,它更多的是推特關注者關係,然後是Facebook朋友關係。我確實使用過,我只在我的api中顯示爲朋友,當它在myFriend和friendWithMe中,或者它的朋友請求,發送(僅在朋友中)或收到(僅在friendWithMe中)。 –