Мне трудно решить, как обрабатывать бизнес-требования в схеме базы данных. У меня есть много таблиц в базе данных, но есть только три, с которыми мне нужно иметь дело для этой проблемы: Курсы, ПерсоналКурсы и Персонал.
- Курсы - это список курсов
- Кадровая
это список персонала
- PersonnelCourses - это список курсов
этот персонал взят .
На курсах есть колонка под названием Универсальная. Если курс универсален, это означает, что весь персонал должен пройти этот курс.
Мне нужно составить список всех универсальных курсов, которые персонал должен пройти , но единственный способ, которым я могу создать этот список, - это перекрестное / декартовое соединение:
выберите P.LastName, C.Name
из курсов C, персонал P
где универсальный = 1
После этого я хочу сделать левое соединение с PersonnelCourses, чтобы у меня был список всего персонала и курсов, которые они должны пройти, а также курсов, которые они прошли. Я думаю, что все было бы проще, если бы между персоналом и курсами было много-много таблиц Но если все сотрудники в любом случае будут находиться в этой средней таблице, разве это не избыточно?
Есть ли лучший способ справиться с этим?
Очень ценится,
Матф