В моей базе данных есть таблица с именами и описаниями состояний (называемая Status).У меня есть две другие таблицы, VacancyRequest и ActionRequest, каждая из которых представляет разные типы сущностей, но каждая из которых имеет свой собственный статус.Возможные статусы одного объекта не обязательно совпадают с возможными статусами другого объекта.
Для обеспечения целостности, какой подход лучше?
Создайте две дополнительные таблицы, VacancyRequestStatus и ActionRequestStatus, каждая с одним столбцом - StatusID.Эти две таблицы будут содержать только идентификаторы StatusID, применимые к их соответствующему типу объекта.Затем создайте отношение внешнего ключа между таблицами вакансий и действий и соответствующими таблицами состояния.Каждая таблица состояния будет иметь FK обратно к основной таблице состояния.
Добавьте столбец в таблицу состояния, чтобы указать объект, к которому он относится (V для вакансии, A для действия).Используйте проверочные ограничения для таблиц вакансий и действий, чтобы убедиться, что любой StatusID, примененный к записи, подходит для этого типа объекта.