设计库存系统的正确方法

时间:2011-05-11 21:17:29

标签: php mysql architecture inventory

我是一名相当优秀的程序员,但在设计系统架构方面我并不是很出色。我有一个非常简单的库存系统,但是我想知道一种很好的方法来构建它。

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

例如,一件设备会有吗?

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

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

对于所有部件?我很困惑,试图设计一个良好,可扩展和高效的结构。

2 个答案:

答案 0 :(得分:6)

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

资料来源:WIKI

请看一下:

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

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

答案 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)

这只会返回用户有权编辑或查看的产品。这取决于您的界面。