1
resposta

Criando chaves estrangeiras

Creio que o enunciado do problema está errado, pois está subentendido a criação da chave estrangeira de itens_notas na tabela produto. No meu entendimento, se for ver a cardinalidade, um produto teria uma nota e uma nota teria vários produtos. Por esse motivo, creio que o correto seria a criação da FK na tabela produto e não o contrário. Sendo assim, segue a resolução de acordo com o meu entendimento:

use vendas_sucos;
alter table itens_notas add constraint fk_produtos foreign key(codigo) references produtos(codigo);
alter table notas add constraint fk_itens_notas foreign key(numero) references itens_notas(numero);
1 resposta

Olá Bruno tudo bem?

Desde já peço desculpas pela demora em obter retorno.

Segundo a atividade proposta, devemos criar por linha de comando, a chave estrangeira ligando a tabela de PRODUTOS com a tabela de ITENS_NOTAS através do campo CODIGO.

Note que no exercício devemos criar uma ligação entre as duas tabelas, que será uma chave estrangeira, e que será o campo código, este que se encontra na tabela produto, portanto, ele será a chave estrangeira na tabela itens_notas.

Quanto a cardinalidade, você mencionou que um produto teria uma nota, mas lembre-se que no mundo real usualmente nem todo produto é vendido, portanto, não faria tanto sentido criar uma chave estrangeira correspondente ao código da nota na tabela produto.

Por fim, notei que no segundo comando na tabela notas, você adiciona uma chave estrangeira correspondente a itens_notas(numero). No entanto, deve ser ao contrário, a tabela itens_notas herdará a chave estrangeira correspondente ao campo número da tabela Vendas, que na sua tabela se chama notas.

A query ficará assim:

USE vendas_sucos;

ALTER TABLE itens_notas ADD CONSTRAINT FK_VENDAS
FOREIGN KEY (NUMERO)
REFERENCES VENDAS (NUMERO);

ALTER TABLE itens_notas ADD CONSTRAINT FK_PRODUTOS
FOREIGN KEY (CODIGO)
REFERENCES PRODUTOS (CODIGO);

Espero ter ajudado.

Caso surja quaisquer dúvida, fico à disposição.

Abraços e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software