作者JYHuang (夏天到了,冷不起来了说)
看板PHP
标题[讨论] 复选值的储存方式与搜寻
时间Sat Aug 30 08:29:18 2014
网页上不管是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://webptt.com/cn.aspx?n=bbs/PHP/M.1409358561.A.C94.html
※ 编辑: JYHuang (111.255.156.120), 08/30/2014 08:30:18
1F:→ tkdmaf: 还有一个就是转json字串了,搜寻方式和serialize相同 08/30 09:27
2F:→ tkdmaf: 好处大概就是可以直接提供给任意语言直接分析吧。 08/30 09:27
3F:→ tkdmaf: 缺点是……如果你进资料库前没先处理好中文的话...... 08/30 09:28
4F:推 liaosankai: set,enum +1 08/30 12:39