29. BLOG만들기-댓글 목록보기

박선규's avatar
Feb 07, 2024
29. BLOG만들기-댓글 목록보기
 
 
 
보드를 아우터 조인한다
notion image
notion image
 
중복해서 데이터를 넣게되면 조인을 할 필요가 없다.
 
foreign key 참조키 데이터양 줄일려고한다.
 
 

이너 조인 (게시글 목록보기 - 댓글도 함께 보이기)

select * from board_tb bt inner join reply_tb rt on bt.id = rt.board_id;
 
 
notion image
이대로 dto에 담아서 화면에 뿌리면 for문을 6번 돌게 되므로
제목4가 2개가 더 나온다.
게시글은 4번만 출력 되어야 하는데
그러므로 orm으로 정리 한번 해야된다.
 
int는 null을 못받음 integer로 받아야됨
DTO도 integer로 받아야 됨
 
 
board dto, 리플리 dto 만들고
board dto를 스트림 api 기능중에 distinct (동일한거 걸러내는게 있음) 사용해서 겹치는 4번을 다 거른다음에
 
board dto랑, 리플리 dto를
boarddtolist에 담는다.
 
결론:중복된거 제거한다음 다시 끼어넣는거 주는게 프론트 개발자 한테 좋다
 

2.2 아우터 조인 (게시글 목록보기 - 댓글 카운트 보이기)

notion image

📌
orm 안쓰고 직접 짜는 건데 기초가 탄탄하면 쉽게 무너지지 않는다. 주말까지 무조건 해야지

2.4 아우터+이너 조인 (게시글 상세보기)

notion image
이 화면에서 두 개 작성자 유저네임(user_id랑 created_at 사이), 댓글 유저네임 추가해야한다.
 
 
(성능 코드)
select bt.id, bt.title, bt.content, bt.user_id, but.username, bt.created_at, rt.id r_id, rt.user_id r_user_id, rut.username, rt.comment from board_tb bt left outer join reply_tb rt on bt.id = rt.board_id inner join user_tb but on bt.user_id = but.id left outer join user_tb rut on rt.user_id = rut.id where bt.id = 4;
이 코드 detaildto에 옮기기
 
 
 
 
(가독성 코드)
select * from board_tb bt inner join user_tb ut on bt.user_id = ut.id where bt.id = 4;
select * from reply_tb rt inner join user_tb ut on rt.user_id = ut.id where rt.board_id = 4;
notion image
 
Share article
RSSPowered by inblog