我正在开发一个PHP + MySQL社交网络应用程序,现在我需要为每个应用程序设置不同的访问控制(读取,创建,编辑,删除)全局(所有项目)和/或自我项目(自己创建的项目)模块到组或特定用户.
有没有人有这样的建议(表格结构等)?
好的,我在这里提供更多细节,目前我有一个tbl_module,tbl_user和tbl_user_role.每个用户和角色可以对特定模块具有不同的访问权限.
读
更新
创建
删除
并由全球访问或仅自己(自己的帐户或他们自己创建的记录)分开.
和我目前的方法:我创建另一个表来保存访问细节:
acl_uid
mod_id(fk模块uid)
target_id(fk用户uid或角色uid)
acl_type(用于标识目标id引用的用户/角色)
acl_read
acl_update
acl_create
acl_delete
acl_read,acl_update,acl_create,acl_delete值范围:
0否认
1允许
2指低优先级检查(如果用户有值2则参考角色)
3自我
我相信这是解决这个问题的更有效方法,或者可能是对我目前方法的改进.
谢谢你的回复.
这是一个非常广泛的问题,所以你很可能只得到非常广泛的答案.
大多数CMS系统都有一个表,列出了可以在系统上生成的内容类型.
另一个表描述了每种类型的内容是如何显示的(在首页,各个博客页面等).
另一个表为每个用户提供一个或多个"用户类型"或"组",例如admin,unregistered,moderator等.
最后一个表是各种各样的访问表 - 它显示了每个组有权执行的操作,包括它可以创建,编辑,发布等的内容类型.
我建议您花一点时间研究其他CMS软件的数据库模式,例如Slashcode,Drupal或其他数百万个CMS系统之一.
-亚当