4-table-relation

  1. 1대1

  2. 1대다

  3. 다대다 feat. 연결테이블

1대1

테이블 A의 레코드가 테이블 B에 많아야 한 개의 레코드와 연결

  • 부모 테이블의 employee_id가 기본키

  • 자식 테이블의 employee_id는 참조키

1대다

  • 테이블 A의 한 레코드에 테이블 B의 레코드가 여러개 연결

  • 테이블 B의 레코드는 테이블 A의 레코드에만 연결

다대다

여러 명의 사람이 여러 개의 책을 가짐.

이렇게 될 경우 연결 테이블 이 필요

  • 왜냐하면 기본키를 다른 테이블이 참조키로 중복되게 가짐

    • 제1정규화 위반

연결테이블은 서로의 기본키를 가짐

연결테이블으로 얻을 수 있는 이점

  • 1정규화를 성립시켜서 중복 데이터 제거, 그로 인해 쿼리 시간 줄일 수 있음

  • join을 통한 이득

  • 데이터 무결성 유지 가능

    • 한쪽 테이블(A)의 row를 지워야 할 경우, B 테이블은 건드리지 않고 연결테이블만 건드리면 됨.

    • 테이블이 나눠져 있지 않을 경우 실수로 잘못된 데이터 지울 수 있음.

    • 그리고 업데이트하는 경우에도 한쪽만 건드리면 됨.

Last updated

Was this helpful?