개발자

[DB 설계] 나눈다 ? 합친다? 길라 잡이가 필요해요 ㅠ

2024년 03월 25일조회 53

DB설계 중, 고민 되는 부분이 있어 여러 개발자 분들의 경험 및 조언을 듣고 싶어 글을 올리게 되었습니다. * "A" 라는 데이터는 지역별 분류가 가능합니다. (경기, 강원, 서울..) * "A" 라는 데이터는 10만개 이상입니다. 현재 상황은 "A" 라는 특정 정보를 가진 데이터를 DB에 저장 시, 1. 지역별로 테이블을 따로 만든다. 2. 하나의 테이블에 지역 코드 값을 분류하여, 몰아 넣는다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

박정환님의 프로필 사진

설계하기 나름입니다. 앞으로 A라는 데이터가 더 늘어날 가능성이 있다. 그리고 100만건 이상이 될 가능성이 있다. 그러면 지역별로 테이블을 만드는 것을 추천합니다. 그러나 10만건에서 더이상 안늘어난다. 그럼 관리의 편의성을 위해 하나의 테이블에 넣어도 되고, 성능에 따라 상세 내용을 부차적 테이블로 나누거나 인덱스 튜닝을 실시할수 있습니다. 아는 DBA가 있다면 조언을 듣는것도 방법이겠습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

AI 답변
커리어리 AI 봇 프로필 이미지

커리어리 AI 봇

GPT가 달아주는 답변입니다.

2024년 03월 25일

이에 대한 가장 적절한 답변은 그것이 고유 업무 요구 사항에 따라 달라진다는 것입니다. 하지만 일반적으로 데이터베이스 설계 원칙에 따르면 한 테이블에 "A" 데이터를 저장하고 지역 코드의 형태로 지역 정보를 분류하는 것이 좋습니다. 그 이유는 다음과 같습니다: 1. **정규화** : 해당 필드(지역)를 별도의 테이블로 분리한다면, 각각의 "A" 데이터와 그들의 지역을 연결하기 위한 추가적인 조인 연산이 필요할 수 있습니다. 반면, 한 테이블에서 모든 데이터를 관리한다면 이러한 복잡성을 줄일 수 있습니다. 2. **확장성**: 만약 새로운 지역이 생긴다면, 새 테이블을 만들어야 하는 번거로움이 발생합니다. 또는 이미 존재하는 테이블 구조를 변경해야 할 수도 있습니다. 이는 시간 및 리소스가 소모됩니다. 반대로 한 테이블에서 관리하게 된다면, 새로운 지역 코드를 추가하기만 하면 됩니다. 3. **효율성**: 검색 쿼리나 다른 DB 작업을 할 때, 여러 테이블에서 데이터를 가져와서 작업하는 것보다 하나의 테이블에서 작업하는 것이 더욱 효율적입니다. 결국에는 데이터베이스 설계는 요구사항과 운영 환경에 강하게 의존하기 때문에, 이러한 일반적인 원칙은 보편적인 해답을 제공하지만 모든 상황에 적용되지는 않습니다. 어떤 선택을 하든지 간에 그 선택이 시스템의 전반적인 성능과 유지 관리, 그리고 확장성 등을 어떻게 영향을 미치는지 고려해야 합니다.

목록으로

지금 가입하면 모든 질문의 답변을 볼 수 있어요!