개요
매장 관리 종합 서비스를 개발하며 사장님, 매니저, 직원으로 구분되는 유저 권한이 필요했습니다.
이 과정에서 ERD 설계 시 고려했던 사항과 해결 방안을 공유하고자 합니다.
고려사항
- 세부 정보의 차이
직원과 매니저는 세부 정보(user_detail)의 구조가 동일했지만, 사장님의 세부 정보는 구조적으로 달랐습니다.
따라서 세부 정보를 하나의 테이블에 통합하면 불필요한 컬럼 낭비가 발생할 가능성이 높다고 판단했습니다.
- 보안 문제
직원과 사장님의 정보를 하나의 테이블에 모아두면 보안 위험이 커질 수 있습니다.
특히, 접근이 비교적 쉬운 직원 정보를 악용해 user_id를 기반으로 보안 문제가 발생할 경우, 사장님의 민감한 정보까지 탈취당할 가능성이 있었습니다.
솔루션
위 문제들을 해결하기 위해 직원(+ 매니저) 테이블과 사장님 테이블을 분리하여 관리하기로 결정했습니다.
결과
테이블을 분리함으로써 다음과 같은 이점을 얻을 수 있었습니다:
- 데이터베이스 효율성: 불필요한 컬럼 낭비를 줄이고, 저장 공간을 최적화했습니다.
- 보안 강화: 권한에 따른 접근 제한을 보다 명확히 하여 보안성을 높였습니다.
단점도 있나요?