인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

twosom님의 프로필 이미지
twosom

작성한 질문수

스프링 시큐리티

2) 관리자 시스템 - 권한 도메인, 서비스, 리포지토리 구성

Account 와 Role 이 예제에서 N 대 N 관계인 이유가

작성

·

209

1

Account 와 Role 이 예제에서 N:N 관계인 이유가 

Account 에 여러개의 권한을 주려고 N 대 N으로 설계하신건가요? 

나중에 계층구조적인 권한을 배우면 Account 와 Role 이 N:N 이 아니라 N:1 로 설계할 수 있는거구요?

만약 그렇다면 나중에 꼭 예제 변형시켜가면서 복습해봐야겠네요.

답변 1

2

정수원님의 프로필 이미지
정수원
지식공유자

네 맞습니다.

Account 에 여러개의 권한을 부여하기 위해서 N:N 으로 설계한 겁니다.

그리고 계층적 권한이 적용되어 최상위 권한 하나만 부여하면 여러개의 권한을 가질 필요가 없을 수도 있겠지만 경우에 따라서는 권한 종류가 다른 동일 레벨의 권한을 여러개 가져야 할 수도 있기 때문에 N:N 설계가 필요합니다.

twosom님의 프로필 이미지
twosom
질문자

감사합니다.

그럼 혹시 실무에서도 주로 권한 관계에 N:N 관계를 많이 사용하나요?

정수원님의 프로필 이미지
정수원
지식공유자

네 

시스템의 규모나 권한의 복잡도에 따라 달라지겠지만 보통 관리를 담당하는 담당자들은 세분화 되어 있는 경우가 많아서 메뉴나 기능에 따라 다수 권한들을 가지고 있기도 합니다.

그리고 N:N 관계이면 1:N, N:1 관계로 해소해 주어야 겠죠^^

twosom님의 프로필 이미지
twosom
질문자

감사합니다. 이번 예제에서는 1:N, N:1 관계를 @JoinTable 어노테이션을 사용하여 해소한 걸로 이해하면 되겠군요! 항상 좋은 강의 감사드립니다.

twosom님의 프로필 이미지
twosom

작성한 질문수

질문하기