![ER diagram ternary 1:1:1](https://i.stack.imgur.com/URjwP.png)
Предположим, у A, B, C есть ключи id (A), id (B) и id (C). Я хочу представить троичное отношение в реляционной модели, я следовал алгоритму из книги «Основы систем баз данных (7-е издание)» (глава 9.1.1, шаг 7):
Первичный ключ S (троичное отношение) обычно представляет собой комбинацию всех внешних ключей, которые ссылаются на отношения, представляющие участвующие типы объектов. Однако, если ограничение количества элементов для любого из типов объектов E, участвующих в R, равно 1, тогда первичный ключ S не должен включать атрибут внешнего ключа, который ссылается на отношение E ', соответствующее E.
Это заставляет меня сомневаться, что отношение должно состоять только из внешних ключей (я не уверен, правильно ли это в реляционной модели?), Должен ли я создать новый уникальный идентификатор для отношения (т. Е. S = (id (s) ), id (A), id (B), id (C)) или любой из первичных ключей участвующих объектов может быть первичным ключом отношения? (т. е. id (A))
Я знаю, что я мог бы просто создать отношение A с идентификатором ключа (A) и идентификатором attirubutes (B), id (C) и остальными атрибутами, но я хочу избежать этого, если это возможно.