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