Вычисляемый столбец SQL Server на основе таблиц транзакций - PullRequest
0 голосов
/ 23 апреля 2019

Я создаю веб-приложение для отслеживания обучения сотрудников.

Каждому Сотруднику будут назначены модули, состоящие из разных курсов.

У меня есть две таблицы транзакций, которые используются для отслеживания статуса сотрудников для курсов и модулей, а другая - для отслеживания того, какие курсы назначены каким модулям.

Вот таблицы транзакций.

Содержимое модуля:

  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, чтобы добавить столбец и объединить три таблицы?

1 Ответ

0 голосов
/ 23 апреля 2019

Вы должны использовать функцию в вычисляемом столбце и не забывать передавать первичный ключ функции ([ModuleID] и [CourseID] и [ModuleID])

и

Могу ли я просто использовать таблицу ALTER, чтобы добавить столбец и присоединиться к три стола?

вы можете сделать это в функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...