C/S 시스템보다 B/S 시스템의 권한이 더 중요합니다. C/S 시스템에는 특별한 클라이언트가 있기 때문에 클라이언트 또는 클라이언트를 통해 접근 사용자 권한 감지를 구현할 수 있습니다. 클라이언트 + 서버 감지를 통해 구현됩니다. B/S에서는 모든 컴퓨터에 브라우저가 있습니다. 완전한 권한 감지가 이루어지지 않으면 "불법 사용자"가 브라우저를 통해 모든 기능에 쉽게 접근할 수 있습니다. B/S 시스템에서. 따라서 B/S 비즈니스 시스템에는 액세스 권한 감지를 구현하기 위한 하나 이상의 권한 시스템이 필요합니다. 이를 통해 승인된 사용자는 승인된 기능을 정상적으로 합법적으로 사용할 수 있으며 승인되지 않은 "불법 사용자"는 완전히 "차단"됩니다. 대부분의 B/S 시스템에서 사용자 기능 권한 제어를 만족시킬 수 있는 권한 시스템을 설계하는 방법을 살펴보겠습니다.
요구 사항
디자인에 대하여
NoahWeb의 액션 프로그래밍 개념의 도움으로 설계 단계에서 시스템 설계자는 프로그램 구조의 설계를 고려할 필요가 없으며 프로그램 흐름과 데이터베이스 구조부터 시작합니다. 요구사항을 실현하기 위해서는 데이터베이스의 설계가 매우 중요합니다. "그룹" 운영의 개념이든 전체 권한 관리 시스템의 재사용성이든 모두 데이터베이스.
먼저 데이터베이스 구조를 분석해 보겠습니다.
먼저 액션 테이블(이하 "권한 테이블"), 그룹 관리자 테이블(이하 "경영진 테이블"), 마스터 테이블(이하 "인사 테이블") )은 "권한" 정보, "관리 그룹" 정보, "인사" 정보를 차례로 기록하는 세 개의 엔터티 테이블입니다. 아래와 같이
이 세 테이블의 관계는 다대다입니다. 권한은 동시에 여러 관리 그룹에 속할 수 있으며 관리 그룹에는 동시에 여러 권한이 포함될 수도 있습니다. 마찬가지로 한 사람은 동시에 여러 관리 그룹에 속할 수 있으며, 관리 그룹에는 동시에 여러 사람이 포함될 수도 있습니다. 아래와 같이
이 세 가지에는 차이가 있기 때문입니다. 테이블 다대다 관계가 있으므로 두 테이블 간의 상호 작용은 다른 두 테이블을 사용하는 것이 가장 좋습니다. 이 두 테이블은 "actiongroup" 테이블(이하 "권한 매핑 테이블")과 "mastergroup" 테이블(이하 "직원 매핑 테이블")이라는 매핑 역할을 합니다. ) 전자는 권한 테이블과 관리 그룹 테이블 간의 상호 작용을 매핑합니다. 후자는 인사 테이블과 관리 그룹 테이블 간의 상호 작용을 매핑합니다. 아래와 같이
또한 테이블이 필요합니다. . 시스템 실행 시 왼쪽 메뉴의 권한 열, 즉 "권한 열 테이블"을 아래와 같이 제어합니다.
위의 분석을 바탕으로 아래와 같이 데이터베이스 구조를 설계합니다.
여기를 클릭하세요. 권한 관리 시스템 데이터 보기 테이블 필드 디자인
좋은 분석을 수행하기 위해 데이터베이스 구조 다이어그램을 분할했습니다. 세 엔터티 테이블의 기능은 이미 매우 명확합니다. 이제 두 매핑 테이블의 기능을 살펴보겠습니다.
권한 매핑 테이블 은 아래와 같습니다.
먼저 권한 매핑 테이블, 관리 그룹 테이블, 권한 테이블 간의 필드 연관을 살펴보겠습니다.
사진 속 빨간 원을 보세요 먼저 보세요 Gorupid 필드 Correlation에서 실제 데이터베이스에서 이 상관 방법의 성능은 다음과 같습니다.
그림과 같이 관리 그룹 테이블에서 "최고 관리자"의 그룹 ID는 1이고, 권한 매핑 테이블에서는 그룹 ID가 1인 권한이 있습니다. 은 ""최고관리자"가 가지고 있는 권한입니다.
groupid 필드 연결을 사용하는 것은 관리 그룹이 실행할 수 있는 권한을 알아내는 것입니다. 그러나 이러한 권한에 대한 자세한 정보는 작업 필드 연결을 통해 쿼리됩니다.
데이터베이스에서 이와 연관된 작업 필드는 다음과 같이 작동합니다.
이 연관을 통해 권한 매핑 테이블에 있는 해당 권한의 세부 정보를 쿼리할 수 있습니다. . 종합해보면, 관리 그룹이 수행할 수 있는 권한과 이러한 권한의 세부 사항이 무엇인지 알 수 있습니다.
actionid 필드를 사용하여 연결하는 것이 어떨까요? 이유:
위의 상황을 고려할 때 액션 필드를 사용하여 연결해야 하는 이유는 다음과 같습니다.
2인 매핑 테이블은 아래와 같습니다.
사람 매핑 테이블과 관리 그룹 테이블과
인사 테이블 간의 현장 연관성은 다음과 같습니다. 아래 표시:
사진을 보세요 빨간색 원 부분을 먼저 보면 groupid 필드 협회의 데이터베이스 성과는 다음과 같습니다.
그림과 같이 "최고 관리자" 그룹의 그룹 ID는 1입니다. 직원 매핑을 살펴보겠습니다. 테이블. Admin은 최고 관리자 그룹에 속하고, 관리자는 최고 관리자 그룹에 속합니다. 이 상관 방법을 사용하는 것은 관리 그룹에 누가 있는지 알아내는 것입니다. 위와 같이 id 필드(person 매핑 테이블의 masterid 필드)와 연관시켜 담당자의 상세정보를 조회하게 된다. id 필드(사람 매핑 테이블의 masterid 필드)는 데이터베이스에 다음 형식으로 표시됩니다. 다음 그림 중 :
한 사람이 동시에 여러 "관리 그룹"에 속할 수 있습니다. 사진, 관리자 동시에 두 개의 "관리 그룹"에 속해 있습니다. 따라서 인사 매핑 테이블에는 관리자에 대한 두 개의 기록이 남게 됩니다. 이 상관 방법을 사용하면 관리 그룹에 속한 사람들의 세부 정보를 쿼리할 수 있습니다. 이를 종합하면 관리 그룹에 누가 속해 있는지, 해당 인물에 대한 자세한 정보를 알 수 있습니다. 위에서 언급한 권한 테이블과 권한 매핑 테이블을 결합하여 " 요구 사항의 그룹" 작업은 아래와 같이 구현됩니다.
사실 관리 그룹 테이블에는 이름, 그룹 ID 등 그룹의 기본 정보만 기록되어 있습니다. 그룹에 속한 사람들의 세부정보와 그룹이 수행할 수 있는 권한의 세부정보는 인사표와 권한표에 기록됩니다. 두 개의 매핑 테이블은 실제로 그룹에 속한 사람과 이들이 수행할 수 있는 권한을 기록합니다. 두 개의 매핑 테이블의 연결을 통해 세 개의 엔터티 테이블 간의 상호 작용이 구현될 수 있으며 요구 사항 에 언급된 "그룹" 작업이 완료됩니다. 권한 열 표와 권한 표 상호작용. 이 두 테이블 간의 필드 관계는 다음과 같습니다.
두 테이블은 actioncolumnid 필드를 사용하여 연관되어 있습니다. 데이터베이스에서 이 연결의 성능은 다음과 같습니다.
그림과 같이 이러한 상관관계 방식을 통해 권한 테이블의 권한이 어느 열에 속하는지 매우 명확하게 알 수 있습니다. 이제 데이터베이스 구조가 매우 명확해지고 권한 할당 기능과 "그룹" 작업이 구현되었습니다. 다음으로 권한 관리 시스템 요구사항에 언급된 재사용성 문제를 분석해 보겠습니다. 왜 이런 데이터베이스 설계 방식으로 구축한 시스템을 재사용할 수 있나요?
|
위 내용은 내용의 측면을 포함하여 [php] 범용 권한 관리 데이터베이스 디자인을 소개한 내용이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.