1
resposta

Aula Insert e Select

Gostaria de saber porque foi escolhido a chave estrangeira nessa aula para cliente_gold com referencia em outra tabela se estamos trabalhando na abela pedidosgold para pedidos onde queremos os maiores que 400?

CREATE TABLE tabelapedidosgold (
ID_pedido_gold INT PRIMARY KEY,
Data_Do_Pedido_gold DATE,
Status_gold VARCHAR(50),
Total_Do_Pedido_gold DECIMAL(10, 2),
Cliente_gold INT,
Data_De_Envio_Estimada_gold DATE,
FOREIGN KEY (cliente_gold) REFERENCES tabelaclientes(id_cliente)
);

INSERT INTO tabelapedidosgold
(id_pedido_gold,
data_do_pedido_gold,
status_gold,
total_do_pedido_gold,
cliente_gold,
data_de_envio_estimada_gold)
SELECT
id,
data_do_pedido,
status,
total_do_pedido,
cliente,
data_de_envio_estimada
FROM tabelapedidos
WHERE total_do_pedido >= 400;

1 resposta

Ei! Tudo bem, Luiz?

Ótima pergunta, obrigada por compartilhar na comunidade.

A escolha de manter cliente_gold como chave estrangeira não está relacionada ao filtro de pedidos maiores que 400, mas sim à coerência do modelo de dados. Mesmo criando uma tabela específica para pedidos “gold”, cada pedido ainda pertence a um cliente, e essa relação precisa ser preservada para evitar dados órfãos ou inconsistentes.

Ou seja:

  • A tabela tabelapedidosgold é apenas um recorte dos pedidos originais.

  • Mas o relacionamento com a tabela de clientes continua existindo.

  • Por isso, a FK garante que todo cliente_gold exista na tabelaclientes.

Sem essa FK, você poderia inserir um pedido “gold” apontando para um cliente que nem existe e o banco não impediria.

O filtro WHERE total_do_pedido >= 400 serve apenas para decidir quais pedidos vão migrar para essa nova tabela, mas não elimina a necessidade de manter a integridade da relação com clientes.

Espero ter ajudado e qualquer dúvida, compartilhe no fórum.

Até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado!