Sou iniciante em programação, conheço um pouco sobre C++, java e banco de dados. Desenvolvendo o meu TCC me surgiu uma dúvida.
Digamos que eu tenha a seguinte Estrutura no banco, Pais \ Estado \ Cidades \ Logradouros, se eu fizer um delete no estado de minas gerais, o que acontece com os registros que tinham a chave primária da tabela como chave estrangeira na tabela de cidades, e seus logradouros cadastrados para aquela cidade? na minha aplicação se isso acontecer as cidades cadastradas no estado de minha gerais não são exibidas devido a falta da chave estrangeira da tabela estados, é correto proceder dessa forma?
O que vai acontecer depende de como vc configurou suas fks.
Não existe um “correto”, existe o que melhor se aplica a sua regra de negócio.
O mais normal é não permitir excluir um registro pai se o filhos ainda existem.
Por exemplo, no seu caso eu não permitiria excluir um estado que tenha cidades, já que não faz sentido isso.
No caso de uma nota fiscal pode ser que ao excluir o cabeçalho dela vc deseje excluir também os itens já que tbm não faz sentido excluir o cabeçalho e deixar um monte de item órfão. Neste caso vc poderia configurar a fk como delete cascade.
Enfim, tudo depende da sua regra de negócio. Mas o mais padrão é não permitir excluir pai que tem filho.
Error, muito obrigado pela informação, realmente não faz sentido excluir uma tabela Pai, vou analisar o que melhor me atende, gostei da parte sobre a nota fiscal e o delete em cascata, obrigado pela dica, abraço.