4-table-relation
1대1
1대다
다대다 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?