对于我正在进行的项目,我需要为用户、几种不同类型的项目以及类似acl的权限系统设计一个数据库。
基本上,这就是我想要做的(要复杂得多,但这足以说明我的意思):
用户:(id,name,password)
)
(itemType和itemId是一个组合外键,引用文章或图像,具体取决于item_type)
有些人可能会说,使用权限表不是一个好主意,也可以通过向文章和图像添加读、写和管理列来实现这一点,但请记住,可能有多个用户对同一项具有不同的权限。放弃这一点是不可能的。
在我看来,这样做会很好。但是当涉及到实现时,我找不到一个php orm来给我一些自由。这让我相信我可能做错了什么。
因此,我的问题是:实现ACL和设计数据库的正确方法是什么?它是如何为企业级应用程序完成的?是否有任何非数据库ACL解决方案?
发布于 2012-02-11 18:09:59
您只需有一个many-to-many表,它将将用户绑定到权限,并可能是解决瓶颈的对象。它将使用- user_id、permission_id和object_id将引用3个不同的表。
意思是:
user_id(references users),permission_id(references permissions),object_id (references image?)
1 ,2(read),2
1 ,3(write),2
1 , 4(exec),2希望能帮上忙
https://stackoverflow.com/questions/9242630
复制相似问题