按位访问控制列表是否被视为反模式?我很好奇,因为我在一个正在研究的应用程序中看到了这一点,虽然它看起来很有趣但它有点有效,但是我们的共识是什么。我在其中看到的缺点是,很难知道什么权限8更容易看到“编辑”或“经理”。但是,按位方法似乎在技术层面上起作用。
答案 0 :(得分:2)
它节省了存储空间,并且它随处可见。例如,对于有一个人既是“编辑者”又是“经理人”的情况,它是完美的。你不应该记住8是什么权限,你应该有一个名称来引用你定义的那些数字然后不必担心。
答案 1 :(得分:1)
这不是反模式,但它确实有一些重要的问题需要注意:
canRead = 1
可以在SQL中编制索引,但permissions & 0x40 = 0x40
不能。)到处都是,在数据库中使用一堆单独的TINYINT
(或类似)标志可能会好得多。从打包值到位域的存储节省不太可能是值得的麻烦。
答案 2 :(得分:0)
我不知道是否有官方的共识但是因为如果它没有以某种聪明的方式使用字符串我会认为它是反模式,因为你被限制为特定数字类型使用的位数
您可以充分了解项目的范围,以确保您永远不会超过32/64。
权限值的可读性不是很重要。