Decompondo um relacionamento ternário em relacionamentos binários

Eu estou projetando um banco de dados que lida com usuários, contas e projetos com os seguintes relacionamentos e restrições:

Uma conta tem muitos usuáriosUm usuário pertence a muitas contasUma conta tem muitos projetosUm projeto pertence a uma contaUm usuário colabora em vários projetos (nota redundante: cada um deles pertence à sua própria conta).

Em outras palavras, um usuário pode colaborar em muitos projetos da mesma conta. Mas como um usuário pode pertencer a várias contas, um usuário pode colaborar em muitos projetos de várias contas. Isso me leva a um ternáriocolabora relação:

Depois de ler alguns artigos sobre a conversão de relacionamentos ternários em relacionamentos binários, desenvolvi os seguintes relacionamentos equivalentes:

Duas questões surgem aqui:

Esta conversão está correta? Eu descobri que tenho que adicionar verificações adicionais no nível do aplicativo para manipular inserções. Por exemplo, antes de adicionar um novo(User,Project) Eu tenho que verificar se o usuário pertence à mesma conta que o projeto pertence.

É realmente necessário estabelecer a relação entreAccount eUser? Uma vez que a relação entreUser eProject foi adicionado, não poderíamos saber a conta a que um usuário pertence acessando o projeto?

Obrigado!!

questionAnswers(1)

yourAnswerToTheQuestion