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

ERD 기반 정밀 모델링을 통한 데이터 마이그레이션 비용 최소화

Relationships, Cardinality, and the Questions Your Schema Is Asking

Steve McDougall2026년 5월 19일8intermediate

Context

애플리케이션 개발 단계에서 부정확한 Cardinality 설정과 잘못된 Foreign Key 배치가 빈번하게 발생함. 이는 추후 데이터 스키마 변경 시 고비용의 Migration 작업과 Query 성능 저하를 유발하는 핵심 원인이 됨.

Technical Solution

  • One-to-One 관계의 불필요한 분리 지양을 통한 Table Complexity 감소
  • Foreign Key를 항상 Child(Many side)에 배치하여 Referential Integrity 확보 및 Join 효율성 최적화
  • Many-to-Many 관계 해결을 위해 Pivot Table을 도입하여 데이터 중복 제거 및 확장성 확보
  • JSON/Array 타입 컬럼 사용을 배제하고 Related Table로 정규화하여 Indexing 및 Query 성능 개선
  • 다중 Foreign Key 존재 시 Explicit Naming을 통한 ORM 매핑 모호성 해결

1. JSON/Array 컬럼 존재 시 즉시 Pivot Table 전환 검토

2. Foreign Key 배치 전 '소유 관계'를 분석하여 Child Table에 위치했는지 확인

3. ERD 상의 모든 관계선에 대해 One-to-Many가 Many-to-Many로 확장될 가능성 검토

4. 동일 엔티티를 참조하는 다수 FK 존재 시 명시적 관계 이름 정의 여부 확인

원문 읽기