Eu e meu amigo estamos criando um diagrama ER para uma liga profissional de futebol. Somos muito novos em banco de dados, então não temos certeza se tudo o que fazemos está correto.
Ao criar um relacionamento entre um gerente e um clube, ele fez isso:
Estou bastante confuso sobre o porquê dos 2 relacionamentos managedBy e signsWith serem Muitos para Muitos. Meu amigo disse que vários gerentes podem gerenciar vários clubes, um para um de cada vez. Mas não deveria ser Um para Um? Já que a qualquer momento, um clube só pode ter um único gerente gerenciando-o e um gerente só pode ter um único clube para gerenciar (não nos importamos com o gerente assistente neste caso); a mesma coisa sobre o relacionamento signsWith.
Então, qual de nós está certo?
Este é mais um problema de palavras e conceitual do que um problema de banco de dados.
Seu amigo provavelmente está pensando em relação a se o histórico é mantido. Por exemplo,
Club A
é criado,Manager 1
gerencia-o, ativamente. Então, um dia, muda para manageClub B
. Na mina do seu amigo, a tabela ainda terá o histórico de quandoManager 1
usado para manageClub A
, mesmo que ele não seja mais o gerente ativo deles.Então, realmente depende se vocês precisam desse histórico. Embora eu armazenasse algo assim em uma tabela separada (geralmente algo como uma
Transactions
tabela mantém o controle dessas coisas), ou usaria alguma forma de rastreamento de alterações para o histórico, e não na mesma tabela que os gerentes ativos . Nesse caso, seria um relacionamento um-para-um na sua tabela de gerentes ativos.