Я собирался написать, что вы должны использовать суррогатный ключ, но я не думаю, что это действительно поможет вам. Таблица объединения обеспечивает соблюдение бизнес-правила, основанного на логических атрибутах сущностей - эти же атрибуты будут храниться в таблице объединения, даже если Page и View были дополнены суррогатными ключами.
Если вы выполняете на сервере, который поддерживает ограничения, вы можете разделить Версию на PageVersion и ViewVersion и добавить ограничение, что они равны, или использовать триггер INSERT / UPDATE, чтобы применить это.
Возможно, я просто неправильно понял намерение, но я чувствую, что есть кое-что, что кажется неправильным с этим дизайном. Я не могу себе представить, как будет работать управление версиями при изменении страниц и представлений и создании новых версий. Если изменение страницы означает, что она получает новую версию, то это также приведет к созданию новых версий всех ее представлений, даже для представлений, которые не изменились в этой версии. Эквивалентно, если изменяется одно представление на странице, изменяется версия представления, что означает, что версия страницы также должна изменяться, и поэтому все другие представления на этой странице, так как версии страницы и представления должны совпадать. Это кажется правильным?