개발자
안녕하세요 간단한 DB 테이블을 설계하던 도중, 나는 이렇게 권한 테이블을 만들면 좋을 것 같은데, 다른 개발자 분 들은 어떤 방향성으로 나아가실지 궁금해 글을 올리게 되었습니다. [주제] 1. 관리자는 사용자 그룹이 사용할 권한을 "범주" 및 "범주에 속한 각 세부 권한" 을 부여를 할 수 있다. 이때, 예시는 아래와 같습니다. 범주? 각 세부 권한이 모여 있는 상위 개념의 의미 범주에 속한 각 세부 권한? 범주 안에 나눠져 있는 세부적인 권한을 의미 이때, 범주는 A,B,C,D,E / 범주에 속한 각 세부 권한 A-1,A-2 || B-1,B-2 등등 2. 범주로 부여 시, 각 세부 권한은 설정 불가 3. 세부 권한 설정 시, 범주로 권한 부여 불가 저의 생각은 아래와 같습니다. (1안) A테이블 - 범주 B테이블 - 범주에 속한 각 세부 권한 두 개의 테이블을 만들고, 컬럼 구성은 A테이블 [사용자 그룹, 범주(코드로 들어감), 권한 부여 ID, 권한 부여 시각] B테이블 [사용자 그룹, 각 세부 권한(코드로 들어감), 권한 부여 ID, 권한 부여 시각] (2안) A테이블 - 부여된 권한을 저장할 테이블 A테이블 [사용자 그룹, 범주 및 각 세부권한, 권한 부여 ID, 권한 부여 타입, 권한 부여 시각] * 권한 부여 타입이란? 범주인지 범주에 속한 각 세부 권한을 부여할지 [예시] C0 : 범주 C1 : 세부 권한 이때, 데이터 관리는 정규화를 고려할 예정입니다. 귀한 시간 내주셔서 감사합니다. 또한 비슷한 경험이 있으면 이야기를 나누는 시간이 되었으면 좋겠습니다.
답변 1
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2023년 09월 22일
안녕하세요, DB 테이블 설계에 대한 귀하의 질문에 대해 답변드립니다. 사실 그 방법은 특정한 정답이 있는 것이 아니라, 해당 시스템의 요구사항과 유지보수의 용이성 등을 고려하여 결정되어야 합니다. 그러나 귀하가 제시하신 두 가지 안 중에서 저는 2안을 더 선호합니다. 그 이유는 다음과 같습니다: - 첫번째로, 하나의 테이블을 사용하면 데이터베이스 구조가 단순화되어 관리하기 쉬워집니다. 호환성 문제를 최소화하고 시스템 전체 성능도 향상시킬 수 있습니다. - 두 번째로, 범주와 세부 권한간의 관계를 하나의 필드에서 나타낼 수 있기 때문에 이해하기 쉽고 가독성도 좋아집니다. 또한, 권한 부여 타입 필드를 두어 범주인지 세부 권한인지 분류하는 것은 우수한 아이디어라고 생각됩니다. 이렇게 함으로써 어떤 유형의 권한이 부여되었는지 쉽게 식별할 수 있게 됩니다. 만약 결국 두 테이블을 사용하게 된다면, A 테이블과 B 테이블 사이에 일련번호를 매핑하여 연결하는 것도 고려해볼 만한 방법일 것입니다. 이렇게 하면 범주와 세부 권한의 관계를 쉽게 파악할 수 있습니다. DB설계는 항상 유연성을 기억해야 하는 부분입니다. 현재의 요구사항뿐만 아니라 미래의 확장성까지 고려하여 작업하는 것이 중요합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!