我正在爲社交網站設計數據庫,其中包含像twitter這樣的「followers」和「follow」功能。整個圈子裏有一些共同的關係,也就是我跟隨的人和我的追隨者。我有一張桌子跟着uid1和uid2。假設A如下B和B如下A和C.這將有像無法找出正確的數據庫設計
uid1 uid2
A B
B A
B C
現在我想在同一個表中的第三個字段relationId這應該是唯一的一個關係條目A是否遵循B或B:一種像
uid1 uid2 relationId
A B 1
B A 1
B C 2
這樣我就可以在另一個表中使用relationId作爲外鍵來存儲用戶整個圈子的共同特徵。 立即想到的一件事是,如果可以有一個交換公式來獲取給定兩個數字(uid1和uid2)的唯一編號(relationId)。但它可能是什麼?
編輯
我也有一個更加懷疑。由於我數據庫中的用戶名是唯一的。那麼我應該在整個數據庫中使用用戶名作爲主鍵還是使用一個數字作爲主鍵作爲uid在我的情況下使用表來解析用戶名和用戶名,從而獲得性能優勢?
我實際上只有1個表格,即「以下」,你認爲它們有兩個不同,但你想出了正確的解決方案。 :) – Terminal
我已經更新了這個問題。你可以看看這個。 – Terminal
我可以在MySql中實現這個約束uid1
Terminal