2011-05-11 75 views
3

我是一個非常優秀的程序員,但在設計系統架構方面我並不擅長。我有一個非常簡單的庫存系統,但我想知道構建它的好方法。設計庫存系統的正確方法

我有大約20件設備,用戶可以[查看全部|更新|刪除|添加]每個人。但是,對於不同的設備,我有不同的訪問級別(這需要動態,更改誰可以查看或刪除)。

例如,一件設備會有?

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

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

對於所有零件?我很困惑試圖設計一個好的,可擴展的和有效的結構。

+0

如果您的業務增長並以50,000個不同部分結尾,會發生什麼情況?你將有50,000個addPart.php,50,000個removePart.php等等,完全不可維護。 – 2011-05-11 21:24:40

+0

'addPart.php?id = 1' GET參數是否被破壞? – Cyclone 2011-05-11 21:40:25

回答

6

訪問控制列表(ACL)是附加到對象的權限列表。 ACL指定哪些用戶或系統進程被授予對對象的訪問權限,以及允許對給定對象執行哪些操作。在典型的ACL中,列表中的每個條目指定主題和操作(例如,文件WXY的ACL上的條目(Alice,delete)賦予Alice訪問文件WXY的權限)。

來源:維基

請看看:

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

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

+0

有趣,謝謝。 – user622469 2011-05-17 16:41:26

1

你可以分類您的產品表,所以每種設備都有其自己的「類別」或「組」。您可以通過爲每個產品分配一個「group_id」(在表格上的新列上)來實現。如果您有300個產品,其中一些將在組1上,其他組將在第2組上等。

然後,在您的用戶表(包含每個管理員的用戶名/密碼的表)上,需要添加稱爲「group_permissions」的附加字段。在該字段中,您必須存儲每個用戶可以查看的「組ID」列表。您可以存儲以逗號分隔的權限。

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

用戶每次訪問你的PHP文件中的一個,你會得到它的權限,並做了簡單的檢查是這樣的:

SELECT * FROM products WHERE group_id IN($permissions) 

這將只返回用戶有權修改或產品視圖。這取決於您的界面。