Re: [SQL ] mysql資料表的設計
: 欄位內容是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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 3 篇):