Estoy de acuerdo con el sentimiento de "no usar valores mágicos". Pero me gustaría señalar que hay momentos en los que es legítimo recurrir a tales soluciones.
Hay un precio a pagar para establecer las columnas nulables: NULLs no son indexables.Una consulta como "obtener todos los registros que no se han modificado desde el inicio de 2010" incluye aquellos que nunca se han modificado. Si utilizamos una columna que admite nulos, nos vemos obligados a utilizar [modified] < @cutoffDate O [modificado] IS NULL, y esto a su vez obliga al motor de base de datos a realizar un examen de tabla, ya que los nulos no están indexados. Y este último puede ser un problema.
En la práctica, uno debería ir con NULL si esto no introduce una penalización práctica en el mundo real. Pero puede ser difícil de saber, a menos que tenga una idea de qué volúmenes de datos realistas son hoy y cuáles serán en el llamado futuro previsible. También necesita saber si habrá una gran proporción de los registros que tienen el valor especial; de ser así, no tiene sentido indexarlos de todos modos.
En resumen, por deafult/rule of thumb uno debe ir por NULL. Pero si hay una gran cantidad de registros, los datos se consultan con frecuencia, y solo una pequeña proporción de los registros tiene el valor NULO/especial, podría haber un aumento significativo en el rendimiento para localizar registros basados en esta información (siempre que uno crea el index!) y en mi humilde opinión, esto a veces puede justificar el uso de valores "mágicos".
Yo tendería a estar de acuerdo. Como un aparte, ¿tienes una respuesta a la pregunta? – user72491
Odio cuando los usuarios intentan redirigir al usuario en lugar de responder y, a continuación, intentar redirigir. – TheTXI
"Quizás debería dejarlo nulo". - Estaba respondiendo esa parte –