日期:2014-05-17  浏览次数:20371 次

【请教一个小问题,如何把权限保存在一个二进制的列里面?】
就是一串0101010这样的,用一张表来保存权限所对应的数值的位置,0代表没有权限,1代表有,意思我懂,只是不懂具体操作,首先二进制的数据类型是哪个?还有怎么获取权限所对应的位置的数字?用字符串截取吗?
二进制 权限

------解决方案--------------------
数据库中二进制是  VARBINARY
不过你的这个需求建议还是不要用串来保存 
SQL SERVER对于二进制的处理不方便
------解决方案--------------------
引用:
Quote: 引用:

用字符串来保存,不用二进制。读写权限时,就判断某位字符是0还是1。
用2进制不是要快很多吗?用VarChar(X)的话怎么让该字段的初始值有X个0呢?


主要是看系统的大小,如果系统小,权限管控不高,可以采用这种方式。
看过有的系统,只管控窗口是否可以打开,所以就用一个表存放顺序号及表名。这样,在这个权限表中,只要按顺序存放1、0就可以了。而且因为系统不大,所以窗口也不多,就算是几十个上百个窗口,初始化几十个上百个0也很容易。
如果权限管控的比较细,就不能这样操作了。因为会相当麻烦。