21.03.24 lamplight서비스 프로젝트(starRating테이블명 -> rating으로 변경, 평점 추가, 출력 구현, 리뷰 삭제 기능 구현)
2021. 3. 24. 22:18ㆍJAVA/Spring & Vue APP 프로젝트(백엔드)
<멤버별 평점 0.5단위로 값 가져오는 쿼리>
# 평점 포인트 포함해서 지도사 리스팅
SELECT M.*,
IF(
(ROUND(AVG(R.point),1)-(ROUND(AVG(R.point),1)-0.5)) >= 0.5,
ROUND(AVG(R.point)),
ROUND(AVG(R.point))-0.5
) AS extra__retingPoint
FROM `member` AS M
LEFT JOIN rating AS R
ON R.relTypeCode = 'director'
AND M.id = R.relId
WHERE M.authLevel = 5
GROUP BY M.id
ORDER BY M.id DESC
<평점 테이블 추가>
# 평점 테이블 추가
CREATE TABLE rating (
id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
updateDate DATETIME NOT NULL,
`relTypeCode` CHAR(20) NOT NULL,
relId INT(10) UNSIGNED NOT NULL,
memberId INT(10) UNSIGNED NOT NULL,
`point` FLOAT(10) # 좋아요 시 +1, 싫어요 시 -1 등 가능
);
# 고속 검색을 위해서 인덱스 걸기
ALTER TABLE rating ADD KEY (relTypeCode, relId);
# SELECT * FROM reply WHERE relTypeCode = 'article' AND relId = 5; # O
# SELECT * FROM reply WHERE relTypeCode = 'article'; # O
# SELECT * FROM reply WHERE relId = 5 AND relTypeCode = 'article'; # X
'JAVA > Spring & Vue APP 프로젝트(백엔드)' 카테고리의 다른 글
21.04.02 lamplight서비스 프로젝트(funeral, funeralRelAssts 테이블 추가) (0) | 2021.04.02 |
---|---|
21.03.30 lamplight서비스 프로젝트(expert에 Review리스트 담기 완료) (0) | 2021.03.30 |
21.03.22 lamplight서비스 프로젝트(review테이블, starRating테이블 추가) (0) | 2021.03.22 |
21.03.21 lamplight서비스 프로젝트(order테이블 funeralHome,stepLevel 컬럼 추가) (0) | 2021.03.21 |
21.03.16 lamplight서비스 프로젝트(test DB 설계) (0) | 2021.03.16 |