2013-01-03 9 views
0

Я пишу простую мобильную игру, в конце которой счет игрока вместе с его игроком загружается в базу данных в облаке. Эта база данных поддерживает высокие баллы для каждого игрока.Загрузка игровых баллов и вычисление процентиля

После загрузки оценки игра (клиентское приложение) снимает все баллы в базе данных и вычисляет и отображает показатели процентиля для текущей игры, лучший результат для этого игрока и лучшие баллы за все время. 20 игроков. Проблема в том, что в настоящее время в базе данных всего несколько сотен строк, но по мере роста размера базы данных будет проблематично извлекать все строки и выполнять вычисления на стороне клиента.

В любом случае я могу выполнить это вычисление масштабируемым способом с хорошей производительностью?

+0

Возможно, какой-то sql? –

ответ

1

Вы можете сохранить абсолютный счет каждого игрока в БД и при ранжировании предлагается найти наибольшее количество баллов и использовать, чтобы определить процент для каждого игрока, который будет отображаться. Percentile можно определить, разделив упорядоченный индекс каждого игрока на количество всех игроков, зарегистрированных в момент обработки результатов запроса.

Все это должно быть выполнено на вашем уровне доступа к данным на сервере (или любой эквивалент, который у вас есть)

0

Я считаю, что вы должны сделать расчеты на стороне сервера

+0

Можете ли вы привести пример того, как это сделать? Я использую azure mobile services в качестве бэкэнд. –

+0

вы просили совета. Я дал вам направление для ваших исследований. Извините, но это как можно больше. –