今天,遇到了这样一个场景,数据表需要加字段,每条记录新增三个与之相关的属性,每个属性可能有true和false两种情况。
那么问题就来了,怎么处理呢?
方法一:简单粗暴
加三个字段,写明true or false,这样做显然不太好。
方法二:中间表
那么可以换一种思路,既然不想在一条记录上加三个字段,可以选择新建一张中间表,负责存储每条记录的id以及属性的true or false。
但是,貌似也不太好,在查询的时候还需要连表,而且有点麻烦。
方法三:标记位
这个方法是一个老同事告诉我的,在每条记录上新增一个字段作为标记位,三个属性可以用三个数字表示,比如0代表true,1代表false,001也就是true true false。
惊艳之余我开始思考后续的业务怎么处理,毕竟这玩意需要在查询的时候做判断,略加思考想到曾经在书中看到的‘_’,可以where 字段名 like '_0_',这样就可以取出第二个属性为true的记录了。
有点意思哦,思路又开阔了一点点。