Se set nullé útil ou não, depende do que você escolheu nullsignificar em um contexto específico - com toda a confusão e opinião em torno da nullIMO, a abordagem sensata é que o DBA
- Escolha (e documente) o que isso significa para cada campo anulável
- Certifique-se de que isso significa apenas uma coisa
Com essas regras, considere o seguinte caso de uso:
- Você tem uma 'loja' de mesa (por exemplo, instalações individuais)
- Você tem uma tabela 'varejista' (por exemplo, cadeias)
- A tabela 'shop' possui um campo de pesquisa referente à chave de 'varejista'
- Você definiu
nullpara representar uma loja independente (ou seja, uma que não faz parte de uma cadeia)
- Um 'varejista' fecha filiais a tal ponto que você considera suas lojas independentes
Nesse caso, um on delete set nullfaz sentido. Existem outras maneiras de modelar essas regras de negócios, mas essa é a mais simples e se ela se encaixa com precisão nos fatos de que você se importa no mundo real, sugiro que esteja perfeitamente ok