0

我有一個疑問,林在Ruby on Rails的網站製作一個朋友的平臺2和表之間的關係2;我有一個名爲用戶表,稱爲表朋友管理用戶之間的友誼。在朋友我有2個字段,* user_id1 *和* user_id2 *。這是款我做的關係:問題與紅寶石在同一列on Rails的

 
class User < ActiveRecord::Base 
    has_many :friends 
end 
 
class Friend < ActiveRecord::Base 
    belongs_to :user, :foreign_key => "user_id1" 
    belongs_to :user, :foreign_key => "user_id2" 
end 

這是處理這種情況的好辦法?另一個想法是創建另一個模型,指向數據庫中的同一個表,userAux,並將其用於關係。你認爲最好的是什麼?你有更好的主意嗎?

在此先感謝。

回答

4

自引用許多一對多結構通常被稱爲材料清單。這是一個非常好的想法,並且在關係數據庫中非常常用。這裏是Data Model。您將擁有布爾屬性,如IsAcceptedIsRejected

請不要命名的列user_id1, 2。請撥打他們的東西,實際上是有意義的,這樣host_idguest_idrequester_idfriend_id。當你編碼時,相關性只會變得清晰。

讀者誰不熟悉關係建模標準可能會發現IDEFIX Notation有用。