Dúvida sobre modelagem! Chave estranegeira

3 respostas
V

Olá pessoal, tudo bem?
Seguinte, estou modelando um sistema comercial e me surgiu uma dúvida aqui.

Tenho uma tabela de Vendas e uma de Cliente, onde, há um relacionamento de 1:N em cliente para venda. Até aí, sem problemas!
Porém, junto ao cliente há um outro relacionamento com uma tabela de autorizados, sendo que , este também é de 1:N.

Quando a pessoa for efetuar a venda, ela escolhe o cliente, e caso haja autorizado, o escolhe também. Aí é que está o problema, num antigo sistema que eu trabalhava, ele guardava em sua tabela de Vendas, o id do autorizado, então ele buscava o autorizado caso este campo estivesse preenchido, permitindo, que ele fosse NULL também caso não houvesse autorizado na venda.
Estou modelando meu sistema aqui, e então criei um relacionamento de 1:N de autorizado para venda, criando assim, uma chave estrangeira em venda vindo de autorizado.

Minha dúvida é a seguinte, chave estrangeira não pode ter valor nulo, então teoricamente toda venda minha teria que ter um autorizado associado, coisa que não acontece.
O que é recomendável fazer? criar um campo em vendas que guarde o autorizado mas que não seje chave estrangeira? ou crio uma outra trabela que guarde o id da venda e o id do autorizado (como se fosse N:N) ? ou há uma outra maneira melhor?

Espero que tenha dado pra entender minha modelagem! Estou na faculdade e a internet aqui está com problemas, porque dá pra me colocar o modelo usado no banco para vocês darem uma olhada!

Desde já, obrigado pela atenção de todos!

3 Respostas

pmlm

Chave estrangeira PODE ter valor nulo…

V

Pessoal, dei uma olhada em meu material aqui da faculdade e vi que sim, uma chave estrangeira pode ter valor nulo!
Acho que essa é a melhor forma, concordam?
Deixar a chave estrangeira de autorizado em venda, porém permitir que ela possa ter valores nulos!

ViniGodoy

Sim, pode ter valor nulo. E é mesmo uma boa, caso aquela chave não vá estar presente sempre.

Criado 16 de novembro de 2009
Ultima resposta 16 de nov. de 2009
Respostas 3
Participantes 3