作者rushcat (嗯)
看板Database
标题Re: [SQL ] mysql资料表的设计
时间Sat May 29 00:32:22 2010
如果只是单纯记录运动种类的话 可以试试看用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)