2014-04-25 5 views
0
의 명령 모음을 유지

내 요구 사항은 다음과 같은 구조는 MySQL의

(USER_ID, 점수, 순위)

USER_ID는 정수 식별자 (또한 기본 키)입니다있는 테이블을 만드는 것입니다.

점수는 사용자의 점수를 나타내는 정수 값입니다.

rank는 점수가있는 사용자 수> 현재 사용자의 점수입니다.

이 표의 항목은 다른 표에 삽입하여 규제해야합니다. 해당 테이블에서 user_id에 해당하는 항목이 발생할 때마다 내 테이블의 점수 변수를 1 씩 증가시키고 모든 user_id에 대해 순위를 다시 계산해야합니다.

이제 모든 사용자의 점수를 다른 모든 사용자와 비교해야하기 때문에 문제는 순위 업데이트입니다.

레코드가 점수에 따라 정렬 된 채로 유지되고 점수가 업데이트 될 때마다 해당 행이 위아래로 움직이는 순서가 지정된 테이블을 만들 수있는 방법이 있습니까?

기본 DB는 MySQL입니다. 이것을 구현하는 가장 좋은 방법은 무엇입니까? 성능은 여기에서 가장 중요한 관심사이며 점수 변경이 자주 발생합니다.

답변

0

AUTO_INCREMENTuserid에 추가하면 삽입시 자동으로 완료됩니다. INSERT 쿼리에서 사용자 ID 값을 제공 할 필요가 없습니다.

+0

@hasan, 실제로 user_id는 다른 테이블의 외래 키입니다. 해당 테이블의 항목이 발생하면 특정 user_id에 대해이 테이블에서 점수가 업데이트됩니다 –