2011-09-20 60 views
0

我正在尋找的信息,在設計允許的名稱爲我們的基於Web的應用程序源代碼。設計許可名

例如,如果我想創建員工的新成員權限,這可能被稱爲create_staffnew_employeeadd_worker或同一事物的任何數量的不同的名字。

這個新工作人員的權限可能需要多個「父」許可工作; edit_employee_name, update_date_of_birth等。此刻,在這些'父'權限的名字上,他們無法與子權限區分。

  1. 您能否推薦一種策略來在整個應用程序中以一致的方式設計名稱?
  2. 也許更重要的是,做任何工具存在管理權限名的中心名單「,或許與權限組或巢穴,以便開發人員,數據庫設計人員和人力資源的工作人員知道叫什麼東西,有什麼存儲和它所呢?

我們正在編寫php和MySQL(目前正在使用phpGACL),但是歡迎來自任何其他語言的方法。謝謝!

+0

什麼你最終的名字嗎? :) – chelmertz

+0

感謝您的回答,但仍然看起來誠實...! – boatingcow

回答

0

你可以找到從Linux的靈感,其中權「讀」,「寫」和「執行」和前面加上這些或類似的動詞自己的名詞。 (我認爲你是在正確的軌道上。)

您要搜索的術語是最有可能ACL(訪問控制列表)。 Zend_Acl是這種模式的PHP實現,支持像繼承一樣的細粒度解決方案。 This article有希望成爲使用Zend_Acl的好指南,即使您不熟悉Zend Framework。 MySQL非常適合作爲Zend_Acl設計的存儲。

我覺得你的例子看起來很好,但記住在你的措辭相一致。解決方案可能包括髮佈一個小指南或讓一個人命名所有規則。


答評論:

你真的應該與ACL談話與那些參與(設計師和用戶),看看他們喜歡什麼。起點可能是verb_noun(s)。確保每個規則都可以用真或假回答,否則規則不明確。確保設計師&用戶知道每個名詞和動詞在您的上下文中的含義,這包括域/業務邏輯。此外,請確保不使用可能的商業條款,例如,如果您的商家使用的組成名稱可能意味着「開發 - 發言」中的不同 - 不要使用它。另一個規則可以幫助:避免stop words

設計師&用戶=開發者和那些誰讀過的規則:)

+0

感謝您的回覆@chelmertz,我們已經使用ACL(phpGACL),但開發人員和數據庫人員在開發階段並不總是能夠訪問它(它還不存在),並且它不提供了一個命名策略,特別是上面的嵌套場景。小指南的概念是我想看到的,特別是如果其他人有這方面的經驗,更不用說總是有一個以上的人蔘與命名! – boatingcow

+0

@boatingcow:回覆在回答中,因爲它比預期的要長一點:)要點是它是一個人/軟的問題,因此需要通過談話來解決:) – chelmertz

+0

感謝您的意見:) – boatingcow