Таблицы рабочих процессов утверждения с формой 3NF в PostgreSQL - PullRequest
0 голосов
/ 22 февраля 2020

Я работаю над одним приложением HRMS. В приложении есть один рабочий процесс Transfers. В рамках этого сотрудник может быть переведен из одного отдела / офиса в другой отдел / офис. Процесс перевода работает следующим образом: Сотрудник проверяет вакансию в заявке и подает заявку на перевод, если вакансия имеется. Как только сотрудник отправляет форму перевода, он отправляется на утверждение в отдел / офис сотрудника. В потоке утверждений 5 утверждающих. В PostgreSQL для достижения 3NF я решил создать 3 отдельные таблицы, как показано ниже: 1) Одна для запроса на перевод сотрудника 2) Запрос на утверждение запроса на передачу 3) Детали запроса на утверждение запроса на передачу enter image description here

Таким образом, на изображении выше для запроса на утверждение я создал две отдельные таблицы: Transfer_request_approval и Transfer_request_approval_details . Transfer_request_approval ссылается на Transfer_request_id как FK, а Transfer_request_approval_details содержит Transfer_request_approval_id как FK и все 5 записей утверждающего для этого конкретного запроса на подтверждение.

например, у нас есть запрос на передачу с id = 1, поэтому в таблице Transfer_request_appro для передачи есть запрос на одну строку = 1, Transfer_request_id = 1 как FK). В Transfer_request_approval_details будет 5 строк для 5 записей утверждающего. (Примечание: для параметра application_status выбрано Утверждено, Отклонено или Переработано, примечание - это не что иное, как пользователь может оставить некоторое замечание. Если утверждающий переводит статус восстановления, он снова go возвращается к утверждающему1, например, если утверждающий 5 переводит статус восстановления, он будет go снова утверждать1. для того же процесса. Таким образом, будет 10 записей для всего этого запроса на утверждение в таблице Transfer_request_approval_details).

Вопрос : Мне действительно нужно иметь таблицу Transfer_request_approval_details или я могу включить все эти записи утверждающих в таблице Transfer_request_approval?

Ответы [ 2 ]

1 голос
/ 23 февраля 2020

Чтобы поддерживать нормальную форму, вам нужна отдельная таблица сведений об утверждении, в противном случае вы получите дублирующие значения статуса для каждого утверждающего. Тем не менее, я не вижу необходимости иметь отдельные таблицы Transfer_request и Transfer_request_approval. Просто добавьте статус для Transfer_request и ссылку на apporver_details.

0 голосов
/ 22 февраля 2020

Я думаю, что вы можете включить все эти записи утверждающих в таблицу Transfer_request_approval.

Нет смысла хранить данные в отдельных 2 таблицах.

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