피드로 돌아가기
Relationships, Cardinality, and the Questions Your Schema Is Asking
Dev.toDev.to
Database

ERD 분석을 통한 Migration 비용 최소화 및 정규화 설계 전략

Relationships, Cardinality, and the Questions Your Schema Is Asking

Steve McDougall2026년 5월 19일8intermediate

Context

데이터 모델링 단계의 설계 미숙으로 인한 잦은 Schema Migration과 쿼리 성능 저하 문제 분석. 잘못된 Cardinality 설정 및 컬럼 내 배열 저장으로 인한 Referential Integrity 훼손 사례 해결 필요.

Technical Solution

  • One-to-One 관계의 불필요한 분리를 배제하고 데이터 성격에 따른 Table 통합으로 Complexity 감소
  • Foreign Key를 항상 'Many' 측(Child)에 배치하여 Efficient Join 및 데이터 무결성 확보
  • Many-to-Many 관계 해결을 위해 두 Entity 사이의 관계 정보만 담는 Pivot Table 설계
  • JSON/Array 형태의 컬럼 저장을 지양하고 정규화된 관계 테이블로 분리하여 Indexing 성능 최적화
  • 동일 Entity에 대한 다중 Foreign Key 존재 시 명시적 Relationship Naming을 통한 Ambiguity 제거

- JSON/Array 컬럼 사용 시 즉시 Pivot Table 전환 검토 - FK 위치 결정 시 '어느 레코드가 다른 레코드에 소속되는가'를 기준으로 Child Table 식별 - 다중 FK 관계 설정 시 ORM의 기본 명명 규칙에 의존하지 않고 명시적 매핑 정의 - 구현 전 ERD 단계에서 Cardinality를 재검증하여 Migration 비용 사전 차단

원문 읽기