개인 프로젝트에서 계속 미뤄오던 좋아요 기능을 구현해봤습니다.
우선 아래와 같이 좋아요 테이블을 하나 만들어야 합니다.
(lno: 기본키, bno: 외래키(글 no), uid: 외래키(사용자 id))
여기서,, 제가 찾아본 방식은
필드를 하나 더 만들어 좋아요 상태를 1 <--> 0으로 토클시켜주는 방식을 사용하던데
커뮤니티에 조언을 구한 결과,
그냥 해당 데이터를 생성 <--> 삭제 하는것이 좋다는 의견이 많아 필드를 3개만 주었습니다.
전체적인 그림은,
1. 좋아요 버튼은 로그인시 활성화
2. 버튼 클릭시 Ajax로 uid, bno를 가진 데이터가 존재하는지 검사
3. 2.결과를 이용해 [좋아요] <--> [좋아요 취소] 로직처리
3.1 데이터가 존재하지 않는다면: 데이터 추가
3.2 데이터가 이미 존재한다면: 데이터 삭제
[like-mapper.xml]
대강 위 흐름만 보시면 아마 각자 구현하실 수 있으실 듯 합니다.
이번 포스팅은 구현 자체가 어려운 것이 아니라,
해보지 않아서 어려웠던 것 같네요.
단순히 '객체'에 해당하는 것만 테이블로 만드는 것이 아니라, '관계'를 나타내는 테이블도 만들 수가 있다는 것을 알게되었습니다.
생각해보면 관계형 DBMS를 사용하니 당연한 거네요.
'Dev- > Spring' 카테고리의 다른 글
스프링 Filter 만들기 (0) | 2018.08.09 |
---|---|
Filter, Interceptor, AOP (0) | 2018.08.08 |
오픈 API 사용하기 - 네이버 아이디로 로그인(로컬) (3) | 2018.07.25 |
Spring 회원가입 인증메일 구현하기 (5) | 2018.07.23 |
로그인 후 이전페이지로 되돌아가기 - Referer 헤더 (0) | 2018.07.18 |