我是一名相当优秀的程序员,但在设计系统架构方面我并不是很出色。我有一个非常简单的库存系统,但是我想知道一种很好的方法来构建它。
我有大约20件设备,用户可以[查看全部|更新|删除|添加]他们每个人。但是我对不同的设备有不同的访问级别(需要动态,更改谁可以查看或删除什么)。
例如,一件设备会有吗?
addPart1.php
removePart1.php
updatePart1.php
index.php (view all parts)
addPart2.php
removePart2.php
updatePart2.php
index.php (view all parts)
对于所有部件?我很困惑,试图设计一个良好,可扩展和高效的结构。
答案 0 :(得分:6)
访问控制列表(ACL)是附加到对象的权限列表。 ACL指定授予哪些用户或系统进程访问对象,以及允许对给定对象执行哪些操作。在典型的ACL中,列表中的每个条目都指定一个主题和一个操作(例如,文件WXY的ACL上的条目(Alice,delete)赋予Alice访问文件WXY的权限。)
资料来源:WIKI
请看一下:
答案 1 :(得分:1)
您可以对产品表进行分类,因此每种设备都有自己的“类别”或“组”。您可以通过为每个产品(在桌面上的新列上)分配“group_id”来实现。如果您有300个产品,其中一些将在第1组,其他在第2组,等等。
然后,在您的users表(包含每个管理员的用户名/密码的表)上,您需要添加一个名为“group_permissions”的附加字段。在该字段上,您必须存储每个用户可以查看的“组ID”列表。您可以存储以逗号分隔的权限。
$permissions = '1,2,5,9';
每次用户访问您的某个PHP文件时,您都会获得其权限并执行以下简单检查:
SELECT * FROM products WHERE group_id IN($permissions)
这只会返回用户有权编辑或查看的产品。这取决于您的界面。