本文摘自PHP中文网,作者coldplay.xixi,侵删。
mysql教程栏目介绍位运算简化一对多关系推荐(免费):mysql教程
语法
& :
按位与,二进制位同时都为1的位设为1。| :
按位或,二进制位有一个位为1就为1.^ :
按位异或,对应位的二进制数不同时,对应位的结果才为1;如果两个对应位数都为0或者都为1,则对应位的结果为0。
原理
1 2 3 4 5 |
|
应用场景
每个景点包含很多属性,例如适合旅游的月份,我们一般的做法可能有两种:
- 是增加一个
varchar
字段,每个月份之间用一个特殊符号分隔保存,例如:"1,2,22,65,7"
- 建立一个关系表,在这里不能使用1-12的数字来表示月份,而是使用
1,2,4,8,16,32,64,128,512,1024,2048,4096
来表示,如果是多个月份,可以相互组合相加,之后存储为一个值。
比如 1,10,12月份,就可以存储1+512+4096=4609
,4096 这个值。
这个技巧适用于属性较少的一对多的场景,可以存储1个或者多个,太多的话还是推荐试用关系表。常用的属性有:月份,消息提醒类型,各种有限的类型组合等等。
使用技巧:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
以上就是介绍Mysql位运算简化一对多关系的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
更多相关阅读请进入《Mysql位运算》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。