2013-07-14 1 views
0

Попытка не изобретать колесо здесь, поэтому подумал: «Я бы спросил вас, ребята;Запрос логики базы данных PHP/MYSQL

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

Теперь я хотел бы создать систему ранжирования, которая вознаграждает очки игрока за завершение карт на основе уровня сложности, например, завершая его на легком вознаграждении игроку 1 очко, 2 очка за средний и т. Д. Эта рейтинговая система будет показывать лучших игроков с большинством очков.

Мой вопрос, будет ли лучше использовать текущую базу данных и использовать PHP для выполнения новой рейтинговой системы

или

создать новую базу данных для ее выполнения?

В любом случае будет оценен простой пример логики.

ответ

0

Я думаю, что лучше всего использовать уже существующую базу данных. Что вы подразумеваете под логическим примером?

+0

Ну, например, что было бы лучше всего, чтобы распечатать Лучшие 10 (игроки с большинством очков). с текущей базой данных каждое финишное время записывается для каждой карты на игрока, поэтому у игрока может быть несколько записей для карты. – Katalyst

+0

Возможно, вам стоит перезаписать старое время. Затем используйте какой-то алгоритм поиска/сортировки. – Kyle

0

Как сказал Кайл, используйте текущую базу данных/таблицу и дайте php/SQL выполнить эту работу. Я бы сделал что-то

select player, 
     Map, 
     Count(*) 
From mytable 
Group by player, map 

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

0

Не могли бы вы попробовать это:

SELECT *, (count(*) * difficulty) AS total 
FROM `map` 
GROUP BY user_id 
ORDER BY total DESC 
LIMIT 10 

difficulty это поле таблицы, которая является 1 для легкой, 2 для средних и т.д.

Смежные вопросы