사이트에 아주 간단한 포인트 시스템을 추가하려고합니다. 내 SQL 데이터베이스에는 포인트를 부여하는 테이블이 있습니다. 관리자가 포인트를 늘릴 수있는 근거와 함께 사용자의 포인트를 어느 정도 늘릴 수 있기 때문입니다. 따라서, 조금 단순화 된이 표에는 관리 상을 가리킬 때마다 부여 된 점수 #, 근거 및 사용자 ID가 포함되어 있습니다. 여태까지는 그런대로 잘됐다.포인트 시스템을위한 효율적인 데이터베이스 모델?
그러나 사이트에 10 개의 사용자 그룹이 있으며 총 점수가 가장 높습니다. 하나의 사용자 그룹에 대한 점수의 수는 이미 15,000 명에 달합니다. 이미 사이트의 구성원이 10,000 명 이상 (대부분은 비활성 상태 임)합니다. 리더 그룹에 경쟁하는 사용자 그룹 및 총 점수를 표시하고 싶지만 시스템을 구현할 때 점수를 합산하는 데 시간이 너무 오래 걸릴 것으로 걱정됩니다. 여기에 질문이 있습니다 : 어떤 레벨에서 (만약 있다면) 데이터베이스에 포인트 집계를 저장해야합니까? 사용자 당 총 점수에 대한 사용자 테이블에 필드가 있어야하며 사용자 그룹 리더 보드에 대한 정보를 합산해야합니까? 아니면 각 사용자 그룹에 대한 총계 필드를 하나씩 추가해야합니까? 시스템을 실제로 구현하기 전에, 불완전한 구현이 수천 명의 사용자에게 영향을 미치고 대규모의 실제적인 경험이 없으므로,이를 즉시 합산하는 데 얼마나 오랜 시간이 걸릴지에 대해 좋은 생각을 갖고 싶습니다. 데이터베이스.