2009-09-15 99 views
0

希望這是一個愚蠢的問題,但我的大腦被炸,我想不出現在該怎麼做。如何在rdbms中表示自我與自我的關係?

我瞎搞努力使社交網絡啄,將需要跟蹤一個人的「追隨者」。我已經創建了一個用戶表,但我如何表示用戶彼此關聯的想法? 這是一個單向關係順便說一句,所以如果一個人「喜歡」人b,反過來並不一定是真的。

我能想到的唯一的事情就是剛剛有一個一對一關係的列表,以便表:

user a -> user b 
user a -> user c 
user a -> user d 
user b -> user d 
user b -> user c 
... 

但這似乎離我。

感謝

西蒙

編輯:也許在twitter上的追隨者更類似於我想要做的

回答

1

創建一張只包含跟隨者ID信息的表格,如下所示:

user_id | follower_id

應該是這樣。舉例來說,用戶#56。

他可能有這樣排在跟隨表:

56 | 53453 
56 | 323 
56 | 463 

剛上兩列添加一個唯一約束,使他無法朋友的人的兩倍。

+0

而一個約束,以確保相同的值不能在兩列 – 2009-09-15 23:31:53

+0

@ralph:你忘了讀最後一句;) – Jeff 2009-09-15 23:54:56

+0

乾杯,不知道爲什麼我有這個麻煩 – Simonw 2009-09-17 18:31:54

0

可能是一張桌子,看起來像:

RelationshipId Follower Target 
Int    Int  Int 

Follower是UserA的Id,Target是UserB的Id,UserA在UserB後面。