【发布时间】:2015-07-02 14:32:46
【问题描述】:
我目前正在为 Web 项目 (PHP/SQL) 创建角色系统 首先,我将拥有约 5 个可以分配给用户的固定角色。 然后我得到了很多不同的特权。 现在我必须创建一个表来为不同的角色分配不同的权限,我想知道这样做的最佳方法是什么:
1) 包含这样列的表格:
id | privilege | sysadmin | editor | ... | guest
0 | db_view | True | False | ... | False
1 | page_edit | True | True | ... | False
...
这似乎是最好的解决方案,只要只有五个固定的不同角色,但是当我在将来的版本中将角色系统开放给用户定义的角色时,它仍然可行吗?
2) 包含这样列的表格:
id | role | db_view* | page_edit | ... | usermanagement
0 | sysadmin | True | True | ... | True
1 | Editor | False | True | ... | False
...
最后,这张表会有大量的列 - 这是个好主意吗? 2) 具有这样列的表:
id | role | privilege | Value
0 | sysadmin | page_edit | True
1 | Editor | page_edit | True
2 | sysadmin | dbview | True
3 | Editor | dbview | False
...
在这里,为真实的特权创建一个数据集可能就足够了。但它仍然需要一张大桌子。
还有其他方法吗?创建该表的最清晰、最灵活的方法是什么?
你学习数据库设计的时候是从哪方面学的?
提前感谢您的任何建议或问题!
【问题讨论】:
标签: php mysql database-design