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

看板Database作者 (嗯)時間15年前 (2010/05/29 00:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
如果只是單純記錄運動種類的話 可以試試看用Bit的方式判斷 CREATE TABLE Choice ( Person_Id INT PRIMARY KEY, ChoiceFlag INT -- 1=Soccer, 2=Baseball, 4=Basketball, 8=Golf... ) INSERT INTO Choice VALUES (1, 1) -- Soccer INSERT INTO Choice VALUES (2, 6) -- Baseball & Basketball INSERT INTO Choice VALUES (3, 10) -- Baseball & Golf -- 如果要找喜歡棒球的 SELECT * FROM Choice WHERE ChoiceFlag & 2 <> 0 不過可能要確認一下Choice數量 可能不能太多種...XDDDDD : 我有一份資料 : 需要記錄每個選項名稱 : 如:某某人喜歡的運動 : 選項有:足球 棒球 籃球.... : 我想用checkbox來表示 : 然後資料表欄位表頭就是運動名稱 : 欄位內容是bool 1表示有勾選,0表示沒勾選 : 雖然這樣可以得到我要的結果 : 但是總覺得這樣方法不是很好 : 因為萬一要增加新的球類,可能其他欄位會被影響到 : 還有每次都抓field裡的資料,這樣會不會造成效率低落? : 另外就是蒐尋的時候,若是用bool值,就完全沒辦法用比對字串的方式。 : 如:想找喜歡棒球的人 : 用我上面說的辦法就很難找到 : 想請問版大對於這樣的狀況 : 有沒有比較好的schema : 謝謝。 -- ◢◣ ◢◣◥████ ◢███◣ ████ ███▉█ ◢█ ◣◢ ██ ███ ◥█ ███▉█ ◢▉█ ◢██ ███ ◢██ ◢██ ███ ◥██◤ █▇▇▇◤ █▉█ █▇▇ █▇ ▉▇▇ █▉█ ██ ▉▉█▏▏◢█ ██▇◣ █▇█ ▇▇█ ██ ███ █▇█▎██ █▉▉█▏▏ rushcat -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.193.86.169 ※ 編輯: rushcat 來自: 123.193.86.169 (05/29 00:32)
文章代碼(AID): #1B__0Pow (Database)
文章代碼(AID): #1B__0Pow (Database)