Я создаю веб-приложение для отслеживания обучения сотрудников.
Каждому Сотруднику будут назначены модули, состоящие из разных курсов.
У меня есть две таблицы транзакций, которые используются для отслеживания статуса сотрудников для курсов и модулей, а другая - для отслеживания того, какие курсы назначены каким модулям.
Вот таблицы транзакций.
Содержимое модуля:
CREATE TABLE [dbo].[ModuleContent](
[ModuleID] [int] NOT NULL,
[CourseID] [int] NOT NULL,
[Status] [nvarchar](50) NULL,
CONSTRAINT [PK_ModuleContent] PRIMARY KEY CLUSTERED
(
[ModuleID] ASC,
[CourseID] ASC
)
Зачисление в модуль:
CREATE TABLE [dbo].[ModuleEnrollment](
[EmployeeID] [int] NOT NULL,
[ModuleID] [int] NOT NULL,
[Status] [nvarchar](50) NULL,
CONSTRAINT [PK_ModuleEnrollment_1] PRIMARY KEY CLUSTERED
(
[EmployeeID] ASC,
[ModuleID] ASC
)
EmployeeCourseStatus:
CREATE TABLE [dbo].[EmployeeCourseStatus](
[EmployeeID] [int] NOT NULL,
[ModuleID] [int] NOT NULL,
[CourseID] [int] NOT NULL,
[Status] [nvarchar](50) NULL,
CONSTRAINT [PK_EmployeeCourseStatus] PRIMARY KEY CLUSTERED
(
[EmployeeID] ASC,
[ModuleID] ASC,
[CourseID] ASC
)
На данный момент конечному пользователю придется обновлять таблицу EmployeeCourseStatus
, когда сотрудник завершает курс, чтобы пометить его как завершенный, что нормально.
Как вычислить столбец Status
, чтобы он помечался как завершенный на основании того, когда сотрудник завершил все курсы, назначенные этому модулю в таблице ModuleContent
.
Могу ли я просто использовать таблицу ALTER, чтобы добавить столбец и объединить три таблицы?