yoond
34
2020-10-16 14:19:42 작성 2020-10-16 14:22:07 수정됨
1
69

mysql 테이블 설계에 관한 질문 - 권한목록이 있는 그룹과 권한과 권한 목록이 있는 회원이 필요할때


안녕하세요. DB초보자입니다.

권한이 있는 회원 시스템을 만들고자하는데 조건은 다음과 같습니다.

1. 회원은 로그인정보와 부여된 권한 및 부여된 그룹을 갖고 있음

2. 하나의 그룹은 여러개의 권한에 매핑되어있고 회원에게 해당 그룹이 부여된다면 그룹에 매핑된 모든 권한이 부여된 것과 같음.

3. 권한은 그룹에 매핑하거나 회원에게 직접 부여할 수 있음.

4. 부여된 권한과 부여된 그룹의 권한끼리 중복을 허용함

5. 모든 그룹과 모든 권한은 서비스 관리자가 언제든지 임의로 추가할 수 있음(임의 제거는 불가능)


그래서 한번 설계를 해봤는데요.

member는 회원, group은 그룹, rule은 권한이고 조인을 위한 테이블들을 만들었습니다.

위와 같은 조건이라고 할때 저는 이렇게 만들었는데 문제없어 보이시는지 경험자분들께 자문을 구합니다;

읽어주셔서 감사합니다.

0
  • 답변 1

  • __jj__
    615
    2020-10-16 17:12:12

    음.. 설계에 정답은 없습니다만.

    우선 3번 조항이 꼭 필요한가요?

    3번 조항때문에 member와 rule간에 다대다의 연결이 필요해졌는데 권한은 반드시 그룹에만 설정하고, 멤버는 그룹으로만 할당한다 라고 제한을 두면 안될까요?

    업무적으로 바로 권한을 멤버에 설정하는게 편한데~라고 한다면 UI에서는 권한을 바로 멤버에 설정해주는 것처럼 하면서 server logic에서 임의의 그룹을 만들어서 끼워 넣어주면 되죠.

    그렇다면 rule과 member_rule관의 릴레이션은 제거 가능합니다.

  • 로그인을 하시면 답변 을 등록할 수 있습니다.