업무 중 알게 된 것들
실무 RDB 설계 중 고민들
얼룩와와
2024. 10. 7. 11:22
ORDER를 표현하는 방법
- 컬럼으로 표현하는 방법
- 장점
- ORDER를 계산할 필요 없이 바로바로 조회 가능
- 단점
- item 하나의 ORDER가 바뀔때마다 그 뒤의 item 모두를 update 해줘야함
- NEXT를 찍어서 표현하는 방법
- 장점
- 트리구조를 표현하려면 이 방법밖에 없음.
- 단점
- 개별 item마다 item id만 가지고 ORDER를 뿌려줘야 할 때가 있으면 비추.
- item의 ORDER를 항상 head부터 계산해야 한다는 단점이 있음.
TABLE vs JSON으로 관리할 것인지
- TABLE로 관리하기
- 장점
- 데이터를 프로부터 받을 때 속성 단위로 세세하게 null check 가능
- 백이나 프가 데이터를 계산할 일이 있을 때 파싱할 필요 없음
- 단점
- 속성이 복잡 다단한 경우 테이블이 매우 많이 필요함
- 여러 테이블에 걸쳐 있는 데이터한꺼번에 조회시 SELECT SQL의 조인 횟수가 늘어남 (성능 저하)
- JSON으로 관리하기
- 장점
- String으로 취급하니 테이블 조인없이 간단히 컬럼 select로 조회 가능
- 사용자의 자유도가 높아서 데이터를 테이블화 하기 불가능한 경우에 이 방법밖에 없음
- 예를 들어 문제스튜디오의 문제나 해설의 경우 사용자가 보기, 선택지, 텍스트, 이미지 등을 어떤 순서로 어떻게 저장할지 정의할 수 없으므로 도큐먼트형 데이터 저장이 불가피함
- 단점
- 어쨌든 데이터를 통으로 주고 받으니 프/백에서 파싱해야함.
'업무 중 알게 된 것들' Related Articles