[주간 복습] 8주차 - 잡동사니

김지환·2024년 4월 21일

복습 시간에 꺼낼만한 주제가 없는 관계로...

이번 시간은 잡동사니 지식 공유 시간입니다.

데이터간의 관계 1:1? 1:N? N:M?


위와 같은 관계의 두 테이블이 있을 때

아무 제약 조건 없이
다른 테이블의 pk를 fk로 바라보면
1:N의 관계가 형성된다.

만약 user_id에 unique의 제약 조건이 있다면,
1:1의 관계가 형성된다.

추가로 어떤 두 테이블의 관계가 N:M이라면 둘 사이에 테이블을 하나 추가해 1:N 관계로 수정한다.
좋아요 기능 예시에서
어떤 한 유저가 여러가지의 책을 좋아할 수 있다. -> 1:N
어떤 한 책을 좋아하는 유저가 많을 수 있다. -> 1:M
따라서 유저와 책의 관계가 N:M이 된다.
이러한 관계를 정리하는 차원에서
좋아요 테이블을 따로 분리해 2개의 1:N 관계로 분리한 것을 생각하면 된다.

create index

index를 생성할 때는 다음과 같은 상황을 유념하자

  • Join attribute에 건다.
  • cardinality가 큰 테이블(10만개 이상)에 건다.
  • read-only table에만 (index를 생성한 테이블은 select 이외에 모든 동작이 느려진다.)
  • index를 하나만 걸어야 한다면, varchar보단 int.
  • 다중 column index는 지양.
profile
세상의 문제 해결을 즐기는 프론트엔드 개발자

0개의 댓글