Как спроектировать базу данных с расписанием?

Есть набор данных:
--пользователь (userId, username, group, year)
и дальше есть месиво данных, которые нужно правильно разделить в таблицы и это:
--курсы (интовое значение)
--группы (количество групп напрямую зависит от курса)
--дата проведения занятия
--сам предмет, который имеет зависимость от даты
(Пример: |дата: 11.08.22| група21: что-то там|)
Как разделить на таблицы эти данные?
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
--пользователь (userId, username, group, year)
Уже лажа, так как группы у вас отдельные сущности, со своими свойствами, группы будут связаны с пользователями через пивот таблицу, так как наверняка будут пользователи, входящие в разные группы.
--курсы (интовое значение)
Курс - это сущность. Какое интовое значение?
--группы (количество групп напрямую зависит от курса)
Ваще до ручки сколько и что от чего зависит. Группы так же связанны таблицей отношений с курсами, как с юзерами. Отдельный пивот.
--дата проведения занятия
Собсно таблица расписаний дата/начало/конец/айди группы/айди предмета/кабинет.
В зависимости от нюансов, которых я не знаю, таблицы могут быть с меньшим отношением, например не многие ко многим, а один ко многим, что немного меняет структуру, но в целом смысл останется примерно тот же.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@VovkVasil Автор вопроса
Спасибо за ответ!
Курс — числовое значение, пример: 3 курс, 4 курс и тд.
Группа тут не столь отдельная сущность, ибо каждый курс будет иметь некое количество групп.
62f614a34fe96281558485.png
Вот примерно так выглядит БД сейчас (да, я знаю, что это ужасно, но это было сделано более года назад и как такового понимания, что такое связи в бд не было:) )
и задача состоит именно в том, чтобы разделить все в отдельные таблицы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы