Я создаю теннисный сайт, который, конечно, должен отображать результаты. В настоящее время для получения рейтинга мне нужно суммировать баллы для каждого игрока, а затем заказывать их, даже если мне нужны только одиночные результаты. Я думаю, что это будет очень медленно, когда количество игроков в системе будет расти. Вот почему мне нужно каким-то образом кэшировать результаты и обновлять их только тогда, когда что-то изменилось (или добавьте какой-то тайм-аут, когда результаты будут обновлены).Правильный способ создания таблицы ранжирования?
Кроме того, другое требование могло бы вычислять общие баллы, то есть у меня будет несколько соревнований, и мне нужно будет показывать баллы для всех соревнований и для каждого соревнования отдельно.
В настоящее время я думаю, что это будет одна таблица для хранения всего. Это схема будет:
ranking_tbl Шма
rank_type (может быть конкуренция, команда, игрок или что-то еще)
rank_owner (кто владеет эти ряды, может быть командным игроком звания - владелец будет команда)
rank_item (который занимает, в примере команды будет игрок)
счет (фактический счет ранжировать по)
ранга (кэшированный ранг, обновляется только при добавлении новых баллов)
рейтинг будет важной частью моей системы и активно используется, поэтому мне нужно его быть максимально эффективным.
Вопрос: Есть ли лучший способ добиться рейтинга, чем использование моей таблицы shema?
Благодарим за ваше время, система начнется с небольшого количества игроков, поэтому второй вариант должен сделать это сейчас. Я приму свой ответ. – insanebits