【发布时间】:2012-07-27 11:16:35
【问题描述】:
我已经使用 2 个静态数组(用于角色和资源)实现了一个访问控制列表,但我在我的数据库中添加了一个新表来获取权限。
为角色使用静态数组的想法是我们不会一直创建新角色,因此数据不会一直更改。我对资源也是这么想的,也是因为我认为资源是只有开发人员才应该处理的东西,因为它们与代码的关系比与数据的关系更大。您知道为什么要使用静态数组而不是数据库表吗?何时/为什么?
【问题讨论】:
-
我只是在数据库中做它并缓存结果。阵列将更快,数据库更易于管理。只需构建一个脚本,该脚本可以从数据库中写出数组或将结果集缓存在 APC 中,或类似的东西。
-
其实这个选择并不是真的基于性能,而是更多是因为数据的类型,你懂我的意思吗?我不会有很多角色,我的资源一旦宣布,就会一直存在。另一方面,权限表是在数据库中创建的,因为我可以设置多种不同的角色、资源和操作组合,并且在数据库中,我还可以通过我设置的名为“is_allowed”的布尔变量撤销此权限'。我只需要将其设置为 0 并保留历史权限,我可以随时更改、授予或撤销
标签: php acl database-performance static-array