Я не уверен, как точно сформулировать мою проблему, но я буду стараться изо всех сил. Я пытаюсь смоделировать базу данных для автошколы. У меня есть таблица «временного интервала», так что такие действия, как уроки, тесты и регистрационные собеседования, могут быть связаны с заданным временным интервалом для сотрудника. Один из запросов, который я задаю, - это возможность просмотреть «расписание» событий для сотрудника. Я построил запрос, и он работает, однако он объединяет данные из различных других таблиц, и я хотел бы увидеть имена этих таблиц, чтобы знать, для какой деятельности зарезервирован временной интервал.
Модель ER
Запрос, который я выполняю для проверки штатного расписания, следующий:
SELECT Timeslot.*
FROM Timeslot
LEFT JOIN Test
ON Timeslot.Timeslot_ID = Test.Timeslot
LEFT JOIN Interview
ON Timeslot.Timeslot_ID = Interview.Timeslot
LEFT JOIN Lesson
ON Timeslot.Timeslot_ID = Lesson.Timeslot
WHERE Timeslot.Date BETWEEN CURDATE() AND (CURDATE() + INTERVAL 7 DAY)
AND Timeslot.Staff = 1;
Это работает и показывает список всех зарегистрированных временных интервалов для данного сотрудника на следующую неделю. То, что я хотел бы, - это еще один столбец, который будет показывать, какой это вид деятельности, например, «Урок», «Интервью» или «Тест». Как вы можете видеть, я в настоящее время сохраняю это как поле в таблице временных интервалов, что означает, что я должен указывать это каждый раз, когда вставляю временной интервал. Я буду нормализовать базу данных до 3NF и хочу избежать дублирования. Есть ли способ, которым я смоделирую это, чтобы получить имя таблицы, я рассмотрел использование UNIONS и многих других вещей, но мог бы использовать некоторую помощь.
Большое спасибо и извинения, если это кажется немного расплывчатым.
Mike