Duvida entre usar chave primária composta ou não na tabela associativa

2 respostas Resolvido
entityframeworkcsharp
R

Estou fazendo um relacionamento onde o mesmo seja N:N…

Exemplo: Projeto x Funcionario

Neste relacionamento eu crio uma tabela associativa chamada Projeto_Funcionario levando o id das duas classes.

Projeto(id, nome)

Funcionario(id, nome, cargo)

Projeto_Funcionario(idProjeto, idFunc, cargaHoraria)

A dúvida é, gostaria de saber se as chaves idProjeto e idFunc são chaves primárias compostas ou não, ou apenos crio elas sendo estrangeiras e antes dela crio uma primaria.

Projeto_Funcionario(id, idProjeto, idFunc, cargaHoraria)

OBS: O Funcionário não pode trabalhar no mesmo projeto mais de uma vez, apenas uma única vez.

2 Respostas

R

Levando isso em conta, deve ser uma chave primária composta.
Mas eu acredito que mesmo sendo uma chave primária composta você pode e deve declarar as mesmas como estrangeiras para que se “amarre” o idProjeto e IdFunc as suas tabelas, evitando erros de exclusão de projetos e funcionários sendo que existe aquele projeto ligado a um funcionário ou vice-versa.

R
Solucao aceita

Sim, imaginava que seria chave primária composta mesmo, obrigado!

E sim novamente, as mesmas quero que sejam chave primária composta e também sejam chave estrangeiras para que haja relacionamento entre as tabelas.

Criado 19 de fevereiro de 2018
Ultima resposta 19 de fev. de 2018
Respostas 2
Participantes 2