Re: [SQL ] mysql資料表的設計

看板Database作者 (動靜:MSN暱稱為主)時間15年前 (2010/05/22 16:49), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
: 欄位內容是bool 1表示有勾選,0表示沒勾選 從你的描述來看,妳的這個表儲存的似乎是所有的運作項目類型, (而不是每個人勾選的結果???) : 因為萬一要增加新的球類,可能其他欄位會被影響到 : 還有每次都抓field裡的資料,這樣會不會造成效率低落? : 另外就是蒐尋的時候,若是用bool值,就完全沒辦法用比對字串的方式。 : 如:想找喜歡棒球的人 一般來說,這類的設計方式如下: {運動類型} sid[int,primary key],sid_name[varchar],sid_description.... {人員資料表} pid[int,primary key],pid_name[varchar],..... {個人運動喜好紀錄} cid[bigint,primary key],pid[int],sid[int]... 舉例如下: {運動類型} 1 排球 我很認真我喜歡排球 2 網球 網球妹很正 3 籃球 籃球啦啦隊妹身材波濤洶湧 4 宅男 網路上最多正妹了啦 5 變態 已經精神不正常了 {人員資料表} 1 大一 2 大二 3 大四 4 上班族 5 老頭 則{個人運動喜好紀錄}可能如下 1 1 1 2 1 2 3 2 3 4 3 4 5 4 4 6 5 5 便可以搜尋喜好某種運動有哪些人了 ex.誰喜歡做變態運動 select c.pid_name,b.sid_name from {個人運動喜好紀錄} as a join {運動類型} as b on a.sid=b.sid join {人員資料表} as c on a.pid=c.pid where b.sid=5 搜尋結果 老頭,變態 : 用我上面說的辦法就很難找到 : 想請問版大對於這樣的狀況 : 有沒有比較好的schema : 謝謝。 -- 歡迎參觀我的相簿 http://www.pixnet.net/tedcat -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.210.41.244 ※ 編輯: tedcat 來自: 218.210.41.244 (05/22 21:10)

06/02 13:03, , 1F
喔喔~謝謝
06/02 13:03, 1F
文章代碼(AID): #1Bzvfz5L (Database)
文章代碼(AID): #1Bzvfz5L (Database)