일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 감사기록
- Token
- 회고록
- GitHub
- static
- KPT
- Java
- 객체지향 언어
- 내일배움캠프
- 클래스
- #스파르타내일배움캠프
- 해우소
- Diary 해우소
- JVM
- Github_token
- #스파르타내일배움캠프TIL
- 스파르타내일배움캠프TIL
- Java의 이점
- 포맷은 최후의 보루
- diary
- 인스턴스
- #내일배움캠프
- 스파르타내일배움캠프
- 변수의 다양성
- 생성자
- 스레드
- TiL_1st_0419
- 메서드
- 성장기록
- Git
- Today
- Total
몬그로이
좋아요 기능 구현 본문
팀프로젝트로 진행했던 것에 더하여 좋아요 기능을 구현해야 했기 때문에
이미 존재하는 좋아요 기능 대신 "도움이 됐어요" 기능을 추가해 보기로 했다
User 가 남긴 Review 에 Thanks 를 달기도 하고 취소하기도 하는 기능이다
조건
- 자신이 쓴 Review 에 대해서는 Thanks 를 달 수 없음
- User 가 Profile 에서 Thanks 를 달아둔 Review 를 리스트로 볼 수 있음
- 이미 Thanks 를 달아둔 것을 다시 누르면 취소됨
Thanks 와 User 와 Review 의 연관관계 설정
처음에는 User 한 사람 당 Thanks ID 를 하나만 가지고 있는 걸로 생각했었는데,
그렇게 하니까 Thanks Entity 를 따로 만들지 않아도 되지만 그건 User Id 와 다를 게 없는 것이었고,
Review 엔티티에 List<Long> ThanksUserId 형태가 되므로 List 의 Type 에 차별점이 없다고 판단 되었다
한 User 가 여러 개의 Thanks 를 달 수 있음
한 Review 에 여러 개의 Thanks 가 달릴 수 있으나, Thanks 하나 당 하나의 Review 에만 달 수 있음
Thanks 하나 당 User 하나만 연결 되나, User 하나 당 Thanks 여러 개 가질 수 있음
User 엔티티에 List<Thanks> gaveThanksList
Review 엔티티에 List<Thanks> recievedThankList
Thank 엔티티에 Thank_id, User_id, Review_id
가능한 참조 상황
User 가 profile 에서 Thanks List 를 확인 -> Thanks 를 등록한 ReviewList 조회
Review 에 등록된 ThanksList 를 통해서 Thanks 를 등록한 UserList 확인 (Reveiw -> Thanks -> User)
Thanks id 가 등록된 Review 를 확인하여 profile 에 List 로 보여줌
따라서
User - Thanks : 일대다 양방향
Review - Thanks : 일대다 양방향
Thanks | ||
Thanks_id | User_id | Review_id |
1 | 3 | 13 |
2 | 2 | 13 |
3 | 2 | 15 |
4 | 1 | 16 |
이렇게 만들고 생각하니까 Thanks_id 는 그 수가 어마어마 하겠구나 싶다
user 는 다량의 Review 를 생성하고, 그 생성된 Review 에 다량의 Thanks 가 생성될 테니 말이다