처음 생각한 방식

MySQL에 follow 데이터베이스 생성 후, Member 테이블의 member_id를 필드값으로 사용

FK = (member_id, follower_id)

member_id follower_id
1 2
1 3

장점

구현하기 쉽다. 직관적이다. 이해하기 쉽다.

단점

테이블의 row가 기하급수적으로 늘어난다. (한명의 팔로워가 100명만 되어도 한명의 회원만 100개의 row를 사용한다.) 데이터베이스의 오버헤드가 커진다. → 다른 방법 사용

개선된 방식

인스타그램에서 사용하는 방식.

Untitled

Untitled

PostgreSQL의 ARRAY 자료형을 사용한다.

장점

회원 테이블의 row 수 = follow 테이블의 row 수.

list로 받기 떄문에 회원의 follow 목록을 한 번에 받기 쉽다.

단점

생소하다. 공부를 따로 해야함.

테이블 설계

질문