пишется результат по уровням (около 15-ти). Планирую сделать опцию /rank - выводящую место игрока по каждому уровню. Как это лучше сделать: select * from users и потом получать индекс игрока из отсортированного словаря для каждого уровня, либо кидать 15 запросов select top 20 from users и в каждом из них искать индекс?
С одной стороны, очевиден ответ, что если юзеров мало, то вариант 1, а если много, то 2. Есть какие мысли у кого, а то мне оба варианта не нравятся.
Не писать в бд по уровням Вместо этого сделать набор отдельных kv хранилищ, имя-индекс, имя-уровень
вроде если таблицы через ключ связаны, то можно взять сразу все результаты
что значит результат по уровню? если у тебя есть некое число характеризующее игрока , то ты в базе сможешь в поле хранить число это + второе поле сам уровень Тогда место вычисляется запросом select count(id)+1 from users whrere level = XXX and info>YYY по сути ты считаешь сколько челов выше юзера.
Обсуждают сегодня