Para esta atividade, adotei uma abordagem diferente ao criar a chave estrangeira (foreign key) na tabela Itens_notas, referenciando a tabela Notas. Utilizei as cláusulas ON DELETE CASCADE e ON UPDATE CASCADE. Como o banco de dados é relacional, essas cláusulas permitem que, ao excluir (DELETE) ou atualizar (UPDATE) um registro na tabela Notas, as alterações sejam automaticamente refletidas na tabela Itens_notas. Dessa forma, não é necessário executar comandos de exclusão ou atualização manualmente na tabela Itens_notas, garantindo que as operações ocorram de forma automática e integrada.
ALTER TABLE ITENS_NOTAS
ADD CONSTRAINT FK_NOTAS
FOREIGN KEY (NUMERO) REFERENCES NOTAS (NUMERO)
ON DELETE CASCADE
ON UPDATE CASCADE;
Observação: Como neste caso estamos lidando apenas com duas tabelas relacionadas, sinto-me confortável em utilizar a opção de CASCADE na criação da chave estrangeira. Isso significa que, ao executar o comando DELETE FROM NOTAS
, todos os registros correspondentes na tabela ITENS_NOTAS são automaticamente deletados. No entanto, em sistemas com múltiplas tabelas inter-relacionadas, o uso de CASCADE pode se tornar mais complexo e potencialmente prejudicial. Ainda não sei até que ponto essa abordagem é vantajosa ou desvantajosa em cenários mais complexos, deixo aqui essa dúvida.