所以我们正在编写的应用程序具有用户可以拥有的某些权限,起初我们只是制作了一个简单的位掩码并将每个权限保存为一个单独的位,并将最终值作为 long 存储到我们的 DB 表中。但是现在我们拥有如此多的权限,以至于该值不再适合数据库中的 long 了。我想我们可以将它存储为字符串而不是长字符串并进行转换,但这让我想知道这是否是解决问题的最佳方法。
例如:用户有权限 1-3-5-7
他的安全值是 2^0 + 2^2 + 2^4 + 2^7 = 149
但是一旦我有 100 个权限,这种方法似乎有点混乱,因为计算 2^99 似乎很昂贵并且很难在数据库表中查看(必须将其存储为字符串,因为它比 long 大)。那么当权限的数量变得非常大并且工作迅速并且不太复杂时,是否有人有不同的方法来解决这个问题?