Бэкенд - Доработка БД
Closed this issue · 0 comments
sidimekov commented
Поменять db_managers.php по формату как написано в "Реформы БД": #8
То есть таблицу testings вместо отдельных столбцов статы (reaction_time, accuracy, misses, mistake) сделать один столбец: statistics. Он будет типа text, там будет храниться строка формата JSON, например:
{
"reaction_time": 100,
"accuracy": 2,
"misses": 3,
"mistakes": 1
}
Подправить файл db_managers.php:
- Подправить методы:
- getTestResults: Работать и так будет, но было бы славно чтобы столбец statistics getTestResults()['statistics'] давал не json строку, а двусвязный список (аналог Map в других япах), где ключами будут статы, а значениями - их значения.
То есть чтобы можно допустим было бы прописать getTestResults()['statistics']['reaction_time']. Короче декодировать json строку в двусвязный список и засунуть его туда же: getTestResults()['statistics'] - getUserResults: Аналогично с методом выше
- addTestResults: в параметрах метода нужны ид юзера и теста, а также ссылочный массив (по типу Map с ключами значениями), в этом массиве ключ: название статистики (например "reaction_time"), а в значении - значение статы.
Метод должен закодировать в JSON строку этот ссылочный массив и отправить в столбец statistics в таблицу testings - getMidUserStats: сам метод рассчитывает средние значения результатов одного теста, если указан конкретный ид пользователя, то значения рассчитывается среднее значение результатов одного теста у одного пользователя, если ид пользователя не указан ( в параметрах метода значение по умолчанию userId null ), то рассчитывается средние результаты одного теста среди всех пользователей.
Щас реализация есть только для 4 статистик, нужно подправить так, чтобы можно было рассчитать для всех статистик, указанных для тесте, по идее список статистик можно получить, прописав метод array_keys( getUserResults() )
- getTestResults: Работать и так будет, но было бы славно чтобы столбец statistics getTestResults()['statistics'] давал не json строку, а двусвязный список (аналог Map в других япах), где ключами будут статы, а значениями - их значения.
Важно потестить методы у себя: в ксампе открыть phpmyadmin, и на страничке какой то вкинуть метод var_dump( ... ), и сверить резы с бдшками и тем, что выдаёт метод