Si set null
es útil o no depende de lo que haya elegido null
significar en el contexto particular: con toda la confusión y la opinión en torno a la null
OMI, el enfoque sensato es que el DBA
- Elija (y documente) lo que significa para cada campo anulable
- Asegúrate de que solo signifique una cosa
Con esas reglas, considere el siguiente caso de uso:
- Tiene una mesa 'tienda' (por ejemplo, locales individuales)
- Tienes una mesa 'minorista' (p. Ej. Cadenas)
- La tabla 'comprar' tiene un campo de búsqueda que hace referencia a la clave de 'minorista'
- Ha definido
null
representar una tienda independiente (es decir, una que no forma parte de una cadena)
- Un 'minorista' cierra sucursales hasta el punto de que considera que sus tiendas son independientes
En este caso, on delete set null
tiene sentido. Hay otras formas de modelar estas reglas comerciales, pero esta es la más simple y si se ajusta con precisión a los hechos que le interesan en el mundo real, sugiero que esté perfectamente bien