Ruby on rails Ruby中的比特屏蔽方案
我正在尝试实现一个简单的用例,在这个用例中,我需要将注释仅限于其中提到的那些用户。我试图在ruby中使用位屏蔽来控制访问。我正在使用数据库中存储的用户“id”值来计算二进制值 例如,例如example1@example.com的id为140,我执行2**140并存储哈希。如果值不为零,我通过对哈希执行位and(&)来允许访问。请检查此链接:Ruby on rails Ruby中的比特屏蔽方案,ruby-on-rails,ruby,bit-manipulation,bitmask,Ruby On Rails,Ruby,Bit Manipulation,Bitmask,我正在尝试实现一个简单的用例,在这个用例中,我需要将注释仅限于其中提到的那些用户。我试图在ruby中使用位屏蔽来控制访问。我正在使用数据库中存储的用户“id”值来计算二进制值 例如,例如example1@example.com的id为140,我执行2**140并存储哈希。如果值不为零,我通过对哈希执行位and(&)来允许访问。请检查此链接: 现在,问题是当我有更大的id值时(很明显,如果id列是bigint,那么位屏蔽就是一个大禁忌)。这个问题有什么解决方案吗?如果没有位映射,除了中间的规范化表
现在,问题是当我有更大的id值时(很明显,如果id列是bigint,那么位屏蔽就是一个大禁忌)。这个问题有什么解决方案吗?如果没有位映射,除了中间的规范化表之外,如何处理这个用例“除了中间规范化表之外,还可以如何处理此用例?”-在通用RDBMS中,它不能。使用n:m关系并向前看。“更大的id值”?
2**140
已经超过了。@Stefan我的意思是,如果“id”列是bigint,则位屏蔽是一个大的禁忌。(但是2**140可以存储在文本列中。)我的观点是,计算幂甚至是不可能的。使用n:m.@vijay的中间规范化表(因为我没有其他选择)是正确的,但与列类型无关。如果用户超过64个(或者更准确地说,用户ID>64),位掩码将超过BIGINT。”除了中间规范化表之外,还可以如何处理此用例?”-在通用RDBMS中,它不能。使用n:m关系并向前看。“更大的id值”?2**140
已经超过了。@Stefan我的意思是,如果“id”列是bigint,则位屏蔽是一个大的禁忌。(但是2**140可以存储在文本列中。)我的观点是,计算幂甚至是不可能的。使用n:m.@vijay的中间规范化表(因为我没有其他选择)是正确的,但与列类型无关。如果用户超过64个(或者更准确地说,用户ID>64),位掩码将超过BIGINT。