[SQL ] 請教像是「好友名單」該怎麼設計呢?

看板Database (資料庫)作者 (換行)時間18年前 (2006/08/04 02:49), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
因為專題要用到,這幾天開始看資料庫的東西 內容大概是指,使用者 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
2的設計比較正常,像是一般對交易檔的設計
08/04 13:31, 1F

08/04 16:31, , 2F
謝謝...:)
08/04 16:31, 2F
文章代碼(AID): #14qaKeko (Database)
文章代碼(AID): #14qaKeko (Database)