Re: [請益] 資料庫規劃問題 (MySQL)
推
03/15 04:53,
03/15 04:53
推
03/15 09:53,
03/15 09:53
推
03/15 10:26,
03/15 10:26
推
03/15 10:28,
03/15 10:28
→
03/15 14:08,
03/15 14:08
推
03/15 16:05,
03/15 16:05
推
03/15 16:31,
03/15 16:31
推
03/15 16:33,
03/15 16:33
→
03/15 16:34,
03/15 16:34
→
03/15 16:34,
03/15 16:34
→
03/15 16:35,
03/15 16:35
推
03/15 16:38,
03/15 16:38
你的是對的 XDD
推
03/15 17:04,
03/15 17:04
我是指位元運算,不是儲存位元… orz 打得太快了
以 unsigned tinyint 來說,值範圍是 0 ~ 255,
255 在二進位下是 11111111,換句話說也就是可以儲存 8 個二元選項,
舉個實際例子好了,
如果使用者有三個可以自行設定的項目:
是否收到 EDM、是否收簡訊、是否收到優惠卷
資料表可以是三欄位式的設計
recive_edm enum yes,no
recive_sms enum yes,no
recive_coupon enum yes,no
也可以是一欄式的設計
recive_option unsigned tinyint 0 (000), 1(001), 2(010), 3(011) …
在一欄式的設計裡,可以透過位元運算來處理,
php 裡先定義一下:
define ('_RECIVE_EDM', 0x01);
define ('_RECIVE_SMS', 0x02);
define ('_RECIVE_COUPON', 0x04);
這樣如果要從資料表中找出「願意收到 EDM」而且「願意收到簡訊」的使用者,
判段式可以像以下這樣寫
前略… WHERE `recive_option`&' . (_RECIVE_EDM | _RECIVE_SMS) .' …後略
如果某使用者設定自己「願意收到簡訊」、「願意收到優惠倦卷」,
更新可以像下面這樣寫
前略… SET `recive_option`='. (_RECIVE_SMS | _RECIVE_COUPON) .' …後略
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.219.113.121
※ 編輯: gpmm 來自: 61.219.113.121 (03/15 21:52)
推
03/15 21:59, , 1F
03/15 21:59, 1F
推
03/15 23:44, , 2F
03/15 23:44, 2F
推
03/16 00:51, , 3F
03/16 00:51, 3F
推
03/18 21:04, , 4F
03/18 21:04, 4F
推
03/21 16:27, , 5F
03/21 16:27, 5F
推
03/26 17:56, , 6F
03/26 17:56, 6F
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章