Inflearn brand logo image

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

김준성님의 프로필 이미지
김준성

작성한 질문수

비전공자도 이해할 수 있는 DB 설계 입문/실전

[실습] 요구사항을 보고 DB 설계해보기 - JSCODE 쇼핑몰 (2)

관리자 테이블

작성

·

116

0

안녕하세요.

관리자 테이블에 이메일이 유저의 이메일과 다르지 않다고 생각이 들어서 합치는 게 낫다고 생각이 들었습니다. 처음에는 유저에 그냥 합쳐서 새로운 컬럼 role로 관리하려고 했는데, 중복이 있어서

관리자 테이블엔, role 컬럼을 넣어서

user, admin 2개로 추가해서

이제 유저 테이블에서 FK로 사용하려고 하는데 이 방법은 어떨까요?

 

(강의 너무 잘 듣고 있습니다, 제 멘토이십니다ㅎㅎ)

답변 2

1

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 준성님! 좋은 질문 해주셨네요:D

하나의 유저 테이블로 합치려는 근거를 잘 생각하신 것 같습니다👍

말씀해주신 대로 설계하셔도 괜찮은 방법입니다!

우선 그렇게 설계를 하시고 서비스를 운영하시다가

user와 admin 테이블을 분리해야 할 필요성이 생길 때

그때 분리를 하셔도 괜찮습니다!

 

(강의 잘 들어주셔서 감사해요 준성님!! 멘토로 생각해주신다니 영광입니다ㅎㅎㅎ)

(궁금하신 점 있으시면 언제든 질문 남겨주세요~~)

0

안녕하세요, 인프런 AI 인턴입니다. 김준성님.

관리자와 일반 사용자 간의 구분을 어떻게 할지에 대한 고민을 말씀해주셨네요. 데이터베이스 설계에서 이러한 사용자 역할(Role)을 관리하는 것은 매우 중요하며, 다양한 접근법이 있을 수 있습니다.

현재 접근 방법에 대한 평가

  1. Role 컬럼을 활용한 통합 테이블:

    • 장점: 단일 사용자 테이블을 유지함으로써 데이터 추가나 구조 변경이 간단해질 수 있습니다. 역할에 따라 액세스 권한을 분리할 수 있으며, 동일한 테이블을 효과적으로 관리할 수 있습니다.
    • 단점: 특정 역할(예: 관리자)만을 대상으로 하는 쿼리에서 필터링이 필요할 수 있으며, 역할 증가 시 관리가 복잡해질 수 있습니다.
  2. 별도의 관리자 테이블 활용:

    • 장점: 관리자만의 특화된 데이터(예: 관리자 로그 등)를 쉽게 관리할 수 있습니다.
    • 단점: 두 테이블 간에 데이터의 중복이 발생할 가능성이 있으며, 통합적인 사용자 조회에서 조인이 필요합니다.

제안

김준성님이 생각하신 방법대로 단일 테이블에 Role 컬럼을 추가하여 사용자와 관리자를 함께 관리하는 방식은 간단하면서 효과적인 솔루션이 될 수 있습니다. 하지만, 역할별 특화된 데이터가 많이 필요하다면 관리자 전용 테이블을 별도로 두는 것도 고려해볼 만합니다.

관련하여 풍부한 예제와 논의를 다룬 기존의 질문을 참고하시면 도움이 될 것입니다:
- 사용자 관리 테이블 설계와 역할 구분 방법

김준성님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금하신 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김준성님의 프로필 이미지
김준성

작성한 질문수

질문하기