2011-10-03 7 views
1

나는 디자인 문제에 봉착했습니다. 테이블의 사용자 레코드에 순위를 지정하려고합니다. 그들은 사이트에서 몇 가지 조치를 취하고 리더 보드를 기준으로 순위를 부여합니다. 그리고 내가 선택한 항목은 Top 10, 사용자 위치, 오늘 로그인 한 Top 10 등에있을 수 있습니다.하늘빛 랭킹 표

Azure 테이블에 저장하는 방법을 찾을 수 없습니다. blob에 사용자 지정 컬렉션 개체 (정렬 된 목록)를 저장하는 것에 대해 생각했습니다.

제안 사항?

답변

1

테이블 엔티티는 PartitionKey, RowKey로 정렬됩니다. 사용자를 계속 삭제하고 다시 만들 수 있기 때문에 (PK, RK를 변경하여 올바른 순서를 부여 할 수는 있지만) 나쁜 생각이거나 과잉 인 것처럼 보입니다. 대신, 나는 아마 당신이 랭킹을 계산하고 주기적으로 랭킹을 계산하고 저장하는 데이터를 저장할 것입니다. 우리는이 작업을 통해 JSON보기에서 데이터를 미리 계산하고 BLOB에 저장 한 다음 UI에서 직접 쿼리하도록 허용합니다. 트릭은 언제 뷰를 다시 계산할지 결정하는 것입니다. 사용자가 순위를 다시 계산하게하는 항목을 수행 한 후에는 메시지를 대기시키고 작업자 프로세스가 가서보기를 다시 계산하게합니다. 이렇게하면 너무 많은 작업자가 한 번에 데이터를 업데이트하지 못하게됩니다.