3

我是一个很好的程序员,但在设计系统架构方面我不是很好。我正在制作一个非常简单的库存系统,但是我想知道一种构建它的好方法。

我有大约 20 台设备可供用户使用 [查看全部 | 更新 | 删除 | 添加]他们每个人。但是我对不同的设备有不同的访问级别(这需要是动态的,改变谁可以查看或删除什么)。

例如,一件设备会拥有什么?

addPart1.php
removePart1.php
updatePart1.php
index.php (view all parts)

addPart2.php
removePart2.php
updatePart2.php
index.php (view all parts)

所有零件?我对尝试设计一个好的、可扩展的和高效的结构感到困惑。

4

2 回答 2

6

访问控制列表 (ACL) 是附加到对象的权限列表。ACL 指定哪些用户或系统进程被授予访问对象的权限,以及允许对给定对象执行哪些操作。在典型的 ACL 中,列表中的每个条目都指定了一个主题和一个操作(例如,文件 WXY 的 ACL 上的条目(Alice,删除)赋予 Alice 访问文件 WXY 的权限)。

资料来源:维基

请看一下:

http://dev.juokaz.com/php/acl-made-easy-part-1(ACL教程)

http://sourceforge.net/projects/tackle/

于 2011-05-11T21:23:17.927 回答
1

您可以对产品表进行分类,因此每种设备都有自己的“类别”或“组”。您可以通过为每个产品分配一个“group_id”来做到这一点(在表的新列上)。如果您有 300 个产品,其中一些将在第 1 组,其他在第 2 组,依此类推。

然后,在您的用户表(包含每个管理员的用户名/密码的表)上,您需要添加一个名为“group_permissions”的附加字段。在该字段上,您必须存储每个用户可以查看的“组 ID”列表。您可以存储这些权限,用逗号分隔。

$permissions = '1,2,5,9';

每次用户访问您的一个 PHP 文件时,您都会获得其权限并进行如下简单检查:

SELECT * FROM products WHERE group_id IN($permissions)

这只会返回用户有权编辑或查看的产品。这将根据您的界面而有所不同。

于 2011-05-11T21:37:26.367 回答