看板 PHP 關於我們 聯絡資訊
網頁上不管是checkbox或是multi-select,要將所選的值存入資料庫。 目前想到的方式有兩種 一種是在資料庫開個表存主鍵和值。 一個是用php的serialize(或是implode)轉成字串存在欄位。 前者比較直覺,SQL搜尋也比較容易(用WHERE `field` IN (A,B) 就好) 不過如果有一堆選項的話要開一堆表(或單一表用鍵值隔開) 在用POST更新時 除非是一次全部洗掉重加 也需要判斷(存在的取消,不在的新增)之類的情類的。 後者比較省資料庫的空間 不過搜尋跟比對上比較麻煩(要用 `field` like A or `field` like B 單筆更新的話也是整欄要洗掉重丟值 取值時則是要先判斷是否能夠unserialize. 除了這兩種方式外 不知各位還有什麼樣的作法? 用enum,set? 其實還是有點不清楚SET屬性欄位如何作複數值的條件搜尋 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.255.156.120 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1409358561.A.C94.html ※ 編輯: JYHuang (111.255.156.120), 08/30/2014 08:30:18
tkdmaf: 還有一個就是轉json字串了,搜尋方式和serialize相同 08/30 09:27
tkdmaf: 好處大概就是可以直接提供給任意語言直接分析吧。 08/30 09:27
tkdmaf: 缺點是……如果你進資料庫前沒先處理好中文的話...... 08/30 09:28
liaosankai: set,enum +1 08/30 12:39