0
我有一个组的树/层次结构和一个项目的SQL表,每个与一个组关联(即每个项目属于一个组)。我只需要选择与给定组或下面的组关联的行。根据分级权限选择行
例如。说这是组树:
A
=> B
=> D
=> C
=> E
=> F
A组选择项目将返回所有行,而选择了C组将选择在C,E和F(C的后裔),属于项目。
到目前为止,我想我可以通过以下两种方式之一实现这一点:
1.在列表
SELECT * FROM table WERE Group in ('C','E','F')
编程确定后代的列表查询
前2. BITWISE运营商
SELECT * FROM table WHERE GroupBitMask & 52!=0
(ie。按位'C'+'E'+'F'==位3 +位5 +位6 == 110100 == 52)
再次,这52将需要通过解析组树。 我想我可以强制限制最多64组。并为此使用64位掩码。
我不确定数据库是否会为此使用索引,或者只是扫描所有行以确定按位结果?
是否有任何其他(更好?)选择我需要的行的方法?