нормализация базы данных mysql

Я новичок в MySQL! иметь абсолютно базовые знания, такие как создание только таблиц.
Я нахожусь в процессе создания веб-сайта с онлайн-экзаменами и результатами. Мои поля включают

t_id, t_name(subject),ru_id, ru_name, ru_skl, hs_user, hsu_skl

легенда: это тест. ru это зарегистрированные пользователи. скл это школа. хз высоко оценен. hsu — это пользователь с высокими оценками.

Я не знаю как упорядочить поля в таблицах и установить отношения так что выполняются следующие условия:
(1) В каждом тесте может быть зарегистрировано несколько пользователей для одного и того же test_id.
(2) пользователь с наивысшей оценкой должен быть получен и внесен в таблицу для соответствующего test_id.
(3) школа с наивысшей оценкой пользователя также должна быть введена в таблицу для соответствующего test_id.
(4) условия 2 n 3 должны быть извлечены для обработки с использованием php для ежемесячного списка топперов и т. Д.

Пожалуйста, потребуйте вашей помощи! 🙂

0

Решение

Таблица: UserToTest
Колонки:

test_id | user_id | score

Это на самом деле все, что вам нужно. Просто вставьте user_id а также test_id установить отношения. Добавить score в качестве дополнительной информации.

Все остальные данные, которые вы хотите получить, максимальный балл по пользователю и максимальный балл по школе — это значения, которые вы можете легко вычислить при запросе. Таким образом, нет реальной необходимости записывать его в таблицу, это только усложнит обработку данных, так как вам потребуется добавить триггеры, ограничения или дополнительную логику в ваше приложение, чтобы поддерживать эти значения в актуальном состоянии.

0

Другие решения

Других решений пока нет …