작은 게임을 개발 중입니다. (Play! 프레임 워크).게임의 점수 및 기록 저장에 좋은 데이터 모델
이 게임에서 플레이어는 기술적 인 질문에 답하고 올바르게 대답하면 점수를 얻습니다. 그 외에도 몇 가지 상을 수여 할 수 있으며 추가 점수를 얻을 수 있습니다. 이것은 SO 배지와 비슷하지만 플레이어가 보너스 포인트를 획득한다는 점을 제외하고는 마찬가지입니다.
나는 지난 주에 대한 "톱 플레이어"를 지난 달 동안 표시 할 수 있기를 원했기 때문에 사용자 점수와 기록을 저장하는 가장 좋은 방법은 무엇인지 궁금합니다. 특히일까요? 가이 (예 : https://stackoverflow.com/users?tab=reputation&filter=week)은 "주 명성 SO 순위"유사합니다 "꼭대기"
오늘은이 : 나는 score
속성, 상점이
User
개체, 사용자의 현재 점수;- 나는 다음과 같은 특성이있는 사용자에 의해 대답 모든 질문에 넣어
QuestionHistory
엔티티 :user
,answeredOn
,correctAnswer
이 등 (나는pointsAwarded
을 추가 할 수 있지만 순간, 모든 질문에 같은 양을 줄을 전철기).
QuestionHistory
엔티티 덕분에 주어진 시간 동안 한 선수가 얻은 점수를 계산할 수 있습니다. 그러나 보너스 수령 점수는 포함되지 않습니다.
UserActivity
를 들어, 다른 기업에 의해
QuestionHistory
엔티티를 대체하는 생각
:
그 결과로, 질문에 대답- ;
- 플레이어가 새로운 질문을 제출하면;
- 수상 할 때;
- 등
이 엔티티의 구조처럼 보일 수 있습니다 : 나는 또한 SO 사이트에서 제공하는 것과 같은 활동 내역을 표시 할 수있을 것, 그러한 주체와
@Entity
public class PlayerActivity extends Model {
public User user;
public Date activityDate;
public ActivityType type; // Define the type of activity: "QUESTION_ANSWERED", "AWARD_RECEIVED", "QUESTION_SUBMITTED", etc.
public int score; // Points won by this activity.
}
(예 : : https://stackoverflow.com/users/22656/jon-skeet?tab=activity)
당신은 그 새로운 명제에 대해 어떻게 생각합니까? 아니면 그것을하는 더 좋은 방법이 있습니까?
그게 완벽한 해결책은 아니지만, 어쨌든 두 번째 제안부터 시작하겠습니다. – romaintaz
어쩌면 완벽하지 않을 수도 있지만 작동한다면 왜 완벽하게 가고 싶습니까?아마 당신은 그것을 필요로하지 않으며 완벽한 디자인과 구현에 걸릴 것이고 아마도 과잉 될 수 있습니다 :) –