我有一個非常典型的用戶表設置爲我的web應用程序:朋友表 - 存儲用戶ID或用戶名?
user_id | username
--------------------
0 greg
1 john
... ...
兩個字段建立索引和唯一的,這樣我就可以通過ID或用戶名快速查找用戶。
我想保持一個朋友的表,我不知道是否將USER_ID值或用戶名存儲在該表:
user_id_1 | user_id_2
--------------------------
or
username_1 | username_2
--------------------------
我會希望得到好友列表的用戶,所以這將是方便立即在朋友表的,而不是做對用戶表的連接的用戶名:
select * from friends where username_1 = 'greg';
如果我存儲的用戶ID,我需要做一個連接,然後得到的用戶名 - 那會很貴嗎?:
select * from friends
where user_id_1 = x
join users where user_id = { all those results }
使用用戶ID可以讓用戶靈活地更改用戶名,但我不會讓他們這樣做。任何建議都會很棒。
謝謝
哦,你能避免類似的東西內查詢:'SELECT * FROM朋友˚F內用戶加入U ON(f.user_id2 = u.user_id)其中f.user_id1 = [id]' – 2011-04-27 22:06:31
是的,我的用戶每個人可能不會超過50個朋友。 – user291701 2011-04-28 15:53:59