`
Jack_吴凡
  • 浏览: 9905 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

复选框在数据库中存储的新思路

阅读更多

经常会遇见这么一个情况,需求中有:

爱好: 篮球 ☑ 足球 ☑ 羽毛球 ☑

 

在数据库中,你可以区分为三列,分别是篮球、足球、羽毛球,值就存trueORfalse

 

今天提供一个新的思路给大家,

 

篮球=2 足球=4 羽毛球=8

数据库中存选中的选项的值的和。

 

如我选择了篮球、足球,则值的和为:6

 

然后再次编辑的时候,只要拿6分别和选项做与运算, 结果大于0则说明选择了,等于0则说明未选择。

 

原理解析:

其实很简单,就是最常用的与运算,

比如羽毛球, 8 换算为二进制为:1000, 6换算为二进制为:0110。

 

 1 0 0 0      

———— =  0000

 0 1 1 0

 

而 2的二进制为 0010

 

 0 0 1 0      

———— =  0010 = 十进制的2 > 0

 0 1 1 0

 

总结:

优点在于减少了很多代码量,很灵巧的解决了问题。

缺点在于数据库中的值,不能清晰的显示出用户选择了什么。

大家根据自己的需求,可以继续完善算法,我这里只是提供一个小思路。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics