Skip to content
다크 모드

나눔 게시판의 주사위 알고리즘을 안내 드립니다.

조회 수
12,356
추천 수
1
등록일
주사위.png

나눔 게시판에 글을 쓰면 주사위 기능이 보입니다.

이 주사위 기능이 어떻게 추첨되는지 알고리즘을 공개합니다.

  1. 추천
    SELECT member_srl
    FROM %sdocument_voted_log
    WHERE document_srl = %d # 글 번호
    AND point > 0
    ORDER BY RAND()
    LIMIT 1;
  2. 댓글
    SELECT member_srl
    FROM %scomments
    WHERE document_srl = %d # 글 번호
    AND member_srl NOT IN (%d,%d) # 작성자, 트레디아_봇 아이디 제외
    GROUP BY member_srl
    ORDER BY RAND()
    LIMIT 1;
  3. 추천+댓글
    SELECT voted_log.member_srl member_srl
    FROM %sdocument_voted_log voted_log
    INNER JOIN %scomments comments
    ON comments.document_srl = voted_log.document_srl
    AND comments.member_srl = voted_log.member_srl
    WHERE voted_log.document_srl = %d # 글 번호
    AND voted_log.point > 0
    GROUP BY member_srl
    ORDER BY RAND() LIMIT 1;

이 공지를 쓰기 좀 전에 주사위 알고리즘에 오류가 있다는 건의를 받았습니다.

확인해보니 실제로 오류가 있었습니다.

그래서 알고리즘에 GROUP BY member_srl 를 붙이고 관련 문제가 해결된 것을 확인했습니다.

 

개선할 부분을 알려주신다면 가능한 반영토록 하겠습니다.

감사합니다.

등록된 소개글이 없습니다.
댓글 1
권한이 없습니다.
다크 모드