99% 모델링하는 두 관계
거의 모든 관계형 schema 가 두 cardinality 위에 세워져:
- One-to-many — author 한 명에 post 여러 개. 'many' 쪽에 FK.
- Many-to-many — post 마다 tag 여러 개, tag 마다 post 여러 개. Junction 테이블 (join table, link table, association table) 로 구현.
1:1 은 드물어 — 보통 두 테이블 합치라는 신호, hot/cold 컬럼 의도적 분리 빼고.
Principle: TEXT 컬럼에 comma-separated id list 넣고 싶어지면 멈춰. 그게 junction 테이블이 비명 지르는 거. SQL 은 '이 컬럼에 42 들어있는 row 다 찾기' 답이 안 좋고, junction 테이블이 그걸 인덱싱된 JOIN 으로 바꿔.