Se meu entendimento estiver correto, uma semijunção é uma maneira de selecionar registros de um conjunto de dados que possuem registros relacionados (por meio de um atributo comum) em outro conjunto. Então, de onde vem o "semi"?
Johntron's questions
Não crio esquemas todos os dias, mas quando faço isso, tento configurar atualizações/exclusões em cascata corretamente para facilitar a administração. Eu entendo como as cascatas funcionam, mas nunca consigo lembrar qual tabela é qual.
Por exemplo, se eu tiver duas tabelas - Parent
e Child
- com uma chave estrangeira nessas Child
referências Parent
e tiver ON DELETE CASCADE
, quais registros acionam uma cascata e quais registros são excluídos pela cascata? Meu primeiro palpite seria que os Child
registros são excluídos quando Parent
os registros são excluídos, já que Child
os registros dependem dos Parent
registros, mas o ON DELETE
é ambíguo; pode significar excluir o Parent
registro quando o Child
registro for excluído ou pode significar excluir o Child
registro quando o Parent
for excluído. Então qual é?
Eu gostaria que a sintaxe fosse ON PARENT DELETE, CASCADE
, ON FOREIGN DELETE, CASCADE
ou algo semelhante para remover a ambiguidade. Alguém tem algum mnemônico para lembrar disso?