Имеются сущности: Преподаватели, студенты, курсы.
Преподаватели могут: создавать курсы, смотреть кто из студентов на курсы записан, подтверждать что студент курс прошел.
Студенты могут: записываться на различные курсы, смотреть на какие курсы уже записан, смотреть какие курсы уже прошел.
Курсы: имеют поле преподавателя, создавшего курс
Каким образом для этого реализовать курсы? Создавать массив студентов для каждого курса? мне кажется будет проблема с доступом конкретного студента к информации о курсах на которые записан.
Для каждого студента создавать новый обьект курс, и к нему добавлять имя студента?
Как запретить студенту несколько раз покупать один и тот же курс?
Для решения этой задачи напрашивается использование реляционной бд, к примеру MySQL. Подходящей схемой может оказаться следующая:
таблица students
таблица courses
, у каждого курса есть связь с teachers
таблица teachers
таблица course_students
, реализующая связь "многие ко многим"
UPD: Опишу подробнее.
Таблицы students
, teachers
, cources
должны иметь поле id (int, primary key)
, остальное по необходимости. Таблица courses дополнительно имеет поле teacher_id (int, foreign key в таблицу teachers по желанию
).
Для реализации n*m связи в таблице course_students
требуются всего два поля: course_id
, student_id
, оба типа int
.
Сама информация по конкретным курсам и студентам хранится в таблицах courses
и students
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У меня есть таблица a с varhar массивом на id в b таблицеК примеру (1,2,3,4,5,6)
Нужно получить id клиента, количество и сумму заказов за последний месяц
Подскажите, как в MySQL можно организовать поиск дубликатов в поле? Вывести только неповторяющиеся значения можно с помощью DISTINCT, а вот как...