Моя родительская таблица является таблицей «Задания», и есть дочерняя таблица, в которой записываются действия задания с именем «JobActions», как показано ниже:
Задания ( JobId , JobType, CurrentStage, AssignedTo)
JobActions ( JobActionId , JobId , CreateDate, ActionType, FromUserId, ToUserId, Message, Detail)
в моей сетке на веб-странице, которую я перечисляю столбцы сетки, как показано ниже:
JobId, CreateDate, CurrentStage, AssignedTo, LastActionType, LastActionDate, ...
В сетке для расчета ниже столбцов я использую соединения с дочерней таблицей (очень медленно, когда есть много пользователей и много данных)
CreateDate ==> Первый (или мин.) JobActions 'CreateDate,
LastActionType ==> Последний JobActions' ActionType,
LastActionDate ==> Последняя (или максимальная) JobActions 'CreateDate
У меня есть около пяти столбцов, подобных этому, которым нужно много объединений с таблицами JobActions или Another, поэтому я решил изменить таблицу Job следующим образом:
Jobs (JobId , JobType, CurrentStage, Assig nedTo, CreateDate, LastActionType, LastActionDate)
последние три столбца всегда обновляются всякий раз, когда любая вакансия добавляется в JobActions.
- Вопрос 1: Это правильная версия (я денормализовал свой таблицы?)
- Вопрос 2. Должен ли я использовать триггер для заданий этого типа или обновить его изнутри моего кода?
- Вопрос 3. Это наилучшая практика? Есть ли лучшее решение для этого типа проблем.