2011-05-11 3 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 등이 있습니다. 완전히 유지할 수 없습니다. –

+0

'addPart.php? id = 1' GET 매개 변수가 손상 되었습니까? – Cyclone

답변

6

ACL (액세스 제어 목록)은 개체에 연결된 사용 권한 목록입니다. ACL은 개체에 대한 액세스 권한이 부여되는 사용자 또는 시스템 프로세스와 지정된 개체에서 수행 할 수있는 작업을 지정합니다. 일반적인 ACL에서 목록의 각 항목은 제목과 조작을 지정합니다 (예 : WXY ​​파일에 대한 ACL의 항목 (Alice, delete)은 Alice에게 WXY 파일에 대한 액세스 권한 부여).

출처 : 위키

은 살펴 보시기 바랍니다 : 당신은 당신의 제품 테이블을 분류 할 수

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

+0

흥미 롭습니다. 감사합니다. – user622469

1

http://dev.juokaz.com/php/acl-made-easy-part-1 (ACL에 튜토리얼을), 그래서 장비의 각 종류가있다 그 자신의 "카테고리"또는 "그룹". 각 제품 (테이블의 새 열에 있음)에 "group_id"를 할당하여이를 수행 할 수 있습니다. 상품 300 개가있는 경우 그룹 중 일부는 그룹 1, 나머지는 그룹 2 등이됩니다.

그런 다음 사용자 테이블 (각 관리자의 사용자 이름/비밀번호가 포함 된 테이블)에 "group_permissions"라는 추가 필드. 이 필드에는 각 사용자가 볼 수있는 "그룹 ID"목록을 저장해야합니다. 이러한 권한을 쉼표로 구분하여 저장할 수 있습니다.

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

사용자 액세스가 귀하의 PHP 파일 중 하나, 당신이 그 권한을 얻을이 같은 간단한 검사 할 때마다 :

SELECT * FROM products WHERE group_id IN($permissions) 

에만 사용자가 또는 편집 할 수있는 권한이있는 제품을 반환합니다 전망. 이는 인터페이스에 따라 다릅니다.

관련 문제