Отношения 1: 1, это хорошая идея? - PullRequest
0 голосов
/ 16 марта 2020

У меня есть база данных, которая имеет отношения 1 1: 1. У меня есть таблица под названием SoftwareVersion. Каждый SoftwareVersion имеет 5 этапов сертификации. Имена PhaseStatus одинаковы для всех 5 фаз. Я не смог обеспечить ссылочную целостность с помощью одной таблицы PhaseStatus и поля Ph0Status, Ph1Status и т. Д. c в таблице SoftwareVersion. Итак, я построил 5 таблиц соединения. Теперь у меня 5 отношений 1: 1. Каждый SoftwareVersion имеет несколько фаз, которые имеют статус, но каждая версия программного обеспечения имеет только один статус фазы 0. Это хороший пример законных отношений 1: 1 или есть лучший способ построить это?

1 Ответ

0 голосов
/ 16 марта 2020

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

Я думаю, вы имеете в виду, что у каждого SoftwareVersion есть много фаз, и каждая фаза имеет один или несколько возможных статусов одновременно.

Если это так, из того, что я вижу, вам нужны только две таблицы. Вам нужна таблица PhaseStatus всех допустимых комбинаций {фаза, статус}. Используйте ссылку FK на эту таблицу в качестве ограничения, чтобы убедиться, что SofwareVersion на любом данном этапе имеет действительный статус. Вам также могут понадобиться таблицы, в которых перечислены домены фаз и состояний, в случае, если они имеют другие интересные свойства, такие как описания или, возможно, временные ограничения.

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