/PHP-SQL-JS

Тестовое задание PHP/SQL + JS

Primary LanguagePHP

PHP-SQL-JS

Installation

Backend Set variables for db connetion in Database.php file Copy DB from dump.sql run server by command:

php -S localhost:8000

Frontend

cd frontend
npm i
npm start

ТЗ PHP/SQL + JS

Есть клиенты clients, которые посещают занятия sessions. Их отметка о посещении хранится в таблице session_members.

Есть клиенты clients, которые посещают занятия sessions. Их отметка о посещении хранится в таблице session_members. Так получилось, что в коде была допущена ошибка, из-за которой создались дубликаты записей в таблице занятий sessions, что привело уже к другой ошибке – клиенты были отмечены, как на занятиях оригиналах, так и на занятиях-дублях (см. данные в session_members).

Необходимо систему вернуть к её устойчивому состоянию, которое предполагает, что:

  1. Может проходить только одно занятие в определённое время, созданное по определённой конфигурации. Не может быть такого, что в таблице sessions есть несколько записей, у который start_time и session_configuration_id повторяются.
  2. Клиент может быть отмечен только 1 раз на занятии. Не может быть такого, что в таблице session_members есть несколько записей, у которых session_id и client_id повторяются.

Для этого потребуется написать запрос SQL и/или PHP-код – на ваш выбор, т.е. вы можете написать всё на “чистом” SQL, а можете прибегнуть к использованию PHP, чтобы получать данные из БД и производить с ними манипуляция. После выполнения запросов в таблице sessions должны остаться только оригинальные занятия, т.е. все дубликаты должны удалиться. При этом, если на занятия-дубликаты уже были отмечены клиенты, то их отметки должны перенестись на занятия-оригиналы (могут быть ситуации, когда клиент был отмечен на занятие-дубликате, и не был отмечен на занятие-оригинале – в таких случаях его отметку нужно перенести на занятие-оригинал).

Окружение

  • MySQL 8
  • PHP 8