사용자 및 그룹으로 데이터베이스를 작성하기위한 기본 모델은 무엇입니까? 사이트의 기본 보안 시스템에

웹 사이트의 기본 보안 시스템에 가장 적합한 방법을 찾으려고합니다. 사용자와 그룹을 원한다는 것을 알고 있습니다.

나는 내가 가질 것이라고 생각했다.

user_table
user_id
user_name
...

group_type
group_id
group_name
parent_id
...

group_table
id
user_id
group_id

첫 번째는 사용자이고, 두 번째는 그룹이며, 세 번째는 둘을 연결하는 중개 테이블입니다. 한 명의 사용자가 여러 그룹을 가지고 있습니다.

괜찮습니까?



답변

이를 모델링하는 전통적인 방법은 Role-Based Security 라는 패턴을 사용하는 것입니다 .

아이디어는 사용자 그룹뿐만 아니라 권한 그룹도 갖는 것입니다. 패턴의 모양은 다음과 같습니다.

테이블 이름에 예약어를 사용하지 않으려면 다이어그램에 표시된대로 테이블 이름을 정확하게 지정하지 마십시오.

작동 방식은 그룹 또는 역할에 할당 된 사용자 목록뿐만 아니라 할당 된 권한 목록도 가지고 있다는 것입니다. 이것은 당신이 나를 따라갈 수 있다면 누가 무엇을 할 수 있는지, 무엇을 할 수 있는지를 테이블 구동 할 수있게합니다.