Re: [SQL ] mysql資料表的設計
如果只是單純記錄運動種類的話 可以試試看用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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):