powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помощь в проектировании БД (тренинги и занятия по языкам)
2 сообщений из 2, страница 1 из 1
Помощь в проектировании БД (тренинги и занятия по языкам)
    #38269743
mr.davidos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день ! ! !

Ситуация такая:

необходимо спроектировать и предложить вариант решения такой проблемы:

запись на тренинги по языкам

разные языки ( английский, немецкий, испанский и т д , всего 10 групп)

ограниченные группы и разное кол-во участников
английский (10 человек)
немецкий (15 человек)
испанский (20 человек)

в каждой из групп есть староста - (случайным образом выбирается )

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

Мой вариант :

таблица студенты

students ( id, name, email)

таблица учебные курсы

lessons (id, name, count, is_blocked)

name - название дисциплины , count -максимальное кол-во слушателей на курсе, is_blocked - статус таблицы false/true (заполнена ли группа)

таблица учеба

work (id_lessons , id_students)


Есть такие ограничения: один студент может состоять в нескольких языковых группах, в одной группе могут быть различые студенты.
Важно, чтобы кол-во студентов не превышало допустимый лимит (10, 15 человек и т д) и чтобы один и тот же
студент не смог дважды записаться на тот же тренинг в текущий момент, но потом после завершения курсов, он сможет
подать заявку.

в таблице lessons я ввел поле count , чтобы регулировать это кол-во и не записывать лишних студентов на курсы, которые уже заполнены,
is_blocked думаю использовать для проверки блокировки строки из этой таблицы ( т е запись на тренинги по английскому языку невозможна, так как там идет учебы и группа уже сформирована . is_blocked равен true ) , если это значение false, то можно уже думать о принятии заявки от слушателя,
т е идет проверка на повторную регистрацию на тренинги ( может он уже есть и просто балуется ) .

Мне нужен совет: правильный ли это подход ? каким образом можно прописать логику работу такого механизма?
т е там , как я понимаю, нужны будут блокировки на уровне строк и транзакции.

Насколько это в Ваших силах и желании, помогите. Это мое первое проектировании, мне будет ценным каждый совет

С Уважением
...
Рейтинг: 0 / 0
Помощь в проектировании БД (тренинги и занятия по языкам)
    #38270562
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторis_blocked - статус таблицы false/true (заполнена ли группа) Не рекомендую. Это уже денормализация (заполнена ли группа можно сказать только выполнив запрос и сравнив его с лимитом). Так делают, если есть проблемы с производительностью и готовы мирится с возможными ошибками.

Пропущена таблица сезон обучения (год, месяц, семестр или просто с даты по дату.).
Пересечение студенты к занятиям M:M будет студент_тренинг_сезон.
Первичный ключ не даст повторно зарегистрироватся.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Помощь в проектировании БД (тренинги и занятия по языкам)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]