[SQL ] 請教像是「好友名單」該怎麼設計呢?
因為專題要用到,這幾天開始看資料庫的東西
內容大概是指,使用者 Sam 的好友名單中,可能會有 Tom、Mary、Danny
但是 Tom 的好友名單中,不一定會有 Sam
也就是 A 有加入 B 為好友,但 B 不一定會把 A 加入好友
每個使用者除了好友名單外,還會有其他的資料,像是姓名、生日...etc
而我的問題是指在建「好友名單」這塊,不知道該怎麼建立會比較好
目前有兩個想法,但感覺都不是很好...:(
第一個做法是,每當新增使用者 Sam 時,就順便建一個 Sam_Friend_List 的 table
而這個 table 只有一個欄位,裡面是存 Sam 的好友,內容則只有 Tom、Mary、Danny
或是他們的 key:
+-----------------+ +-----------------+
| Sam_Friend_List | | Tom_Friend_List |
+-----------------+ +-----------------+
| Tom | | Mary |
| Mary | +-----------------+
| Danny |
+-----------------+
第二個想法,是有一個 Friend_List 的 Table,有兩個欄位,第一個存 Sam,第二個
存 Tom/Mary/Danny 或是他們的 key 值:
+------+--------+
| user | friend |
+------+--------+
| Sam | Tom |
| Sam | Mary |
| Sam | Danny |
| Tom | Mary |
+------+--------+
請問以上兩種,哪種設計會比較好呢?
第一種感覺頗麻煩,每新增使用者就要多一個 Table
第二種雞蛋放同一個籃子裡,而且怕使用者一多,select 起來速度會很慢
或是有什麼更好的做法呢?上 google 不知道要找什麼關鍵字比較好...:(
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.143.219.60
推
08/04 13:31, , 1F
08/04 13:31, 1F
推
08/04 16:31, , 2F
08/04 16:31, 2F
Database 近期熱門文章
PTT數位生活區 即時熱門文章