2013-12-12 95 views
0

我想在MySQL中爲'朋友'創建一張表。MySQL的'朋友'表

我有'用戶'表'屬性'user_id',這是表的主鍵。

我想要一個友誼表,它允許用戶添加另一個用戶作爲朋友。但是,該用戶將仍然是新朋友的熟人。

因此,例如,USER_A與USER_B連接,USER_B現在是USER_A的朋友,但USER_B不會將USER_A視爲朋友,因此USER_A仍然只是USER_B的熟人。

+2

只需添加2行:'userA | userB'和'userB | userA' – zerkms

+0

到目前爲止,你有什麼想法? – reto

+0

到目前爲止,我已經想到將user_id,friend_id和date_started作爲時間戳。 – Pixulated

回答

2

您可以在表「朋友」 2列這樣的(僞代碼)型號:

Friends(from, to) 
PrimaryKey(from, to) 

在現實的mysql:

CREATE TABLE Friends (from INT, 
         to INT, 
         PRIMARY KEY(from, to)) 

假設你有一個用戶表與整數作爲主鍵。

然後,如果您從= USER_A和= USER_B插入,則您的預期語義已受到尊重。 因爲您還可以添加具有= USER_B和= USER_A的另一行。

+0

我真的很困惑這個!兩個主鍵? – Pixulated

+0

不是。它是由2列組成的主鍵。主鍵可以由多個列組成。請注意,我使用僞代碼編寫了示例,您應該谷歌檢查此主鍵的正確語法。 – Kami

+0

好的,將主鍵組合成兩列的目的是什麼? – Pixulated