请富翁多多提出见解 (50分)

W

wx_long

Unregistered / Unconfirmed
GUEST, unregistred user!
结构是这样的
组名称 编号
----------------------
小组A 1000000
小组B 0100000
小组C 0010000
用户 隶属组
-----------------------
sys 1110000 //表示他属于三个小组
user 1100000 //说明他同时属于小组A 和小组B
我想实现的主要意图:
给sys 分配组(小组A,小组B)可以得到 隶属组编码 1100000
通过 查询 sys 的隶属组 1110000 我可以知道它属于 小组A ,小组B, 小组C
请大家多提出见解,少灌水(我不会游泳)
 
你让提什么呢?
 
那你的编号应该用位来计算会好些
 
你的问题呢? 呵呵
摆在这里是什么意思?
想建表还是查询什么的?
 
就是,想问啥,写SQL语句?
 
用个集合多好!
 
就是进行代码的叠加,但是如何叠加呢?
说些有用的话!!!!!
 
小组代码用二进制表示
名称 编号
小组A 1//转化为二进制为0000001
小组B 2//转化为二进制为0100010
小组C 4//转化为二进制为0000100
给sys加分组时用 隶属组和小组编号进行 or 运算 把小组代码添进去
给sys减分组时 先对要减的小组编号求反 然后进行 and 运算
判断sys组包含那些组时,用笛卡尔交叉查询,用 and 操作
类似:
select 组名称 from a cross join b where (a.编号 &
b.隶属组 )>0 and b.用户='sys'
 
没分组用户用11111111表示!
每分一次用11111111和组代码做AND操作,在和原来的分组好代码做OR操作!
SYS分给AB组:
(11111111AND10000000)OR(111111111AND01000000)
建议用四位表示
 
位串从后往前来比较好,从后往前这样的位串更容易得出有多少中权限
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
969
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部