No borrar creará una nueva clase de errores para todas las consultas futuras. No olvide que la escritura de consultas a menudo es realizada por usuarios avanzados (es decir, profesionales no informáticos) y desarrolladores junior. Entonces, cada tabla que tenga datos inválidos marcados solo por una bandera activa BIT necesitará un AND adicional en la cláusula WHERE para cada consulta desde ahora hasta siempre. Esto ayudará a los usuarios a caer en el pozo del fracaso en lugar de en el pozo del éxito. Sin embargo, le recomiendo encarecidamente que implemente estos sistemas de indicadores de todos modos porque sin un mal diseño, no es necesario que los desarrolladores de mantenimiento arreglen los numerosos errores que creará.
¿Qué tan valioso es tener datos históricos en la tabla? Si la empresa está orientada hacia el futuro, tener datos antiguos en las tablas puede ser una carga, ya que puede causar problemas al crear restricciones (todas las restricciones tendrán que modificarse para excluir los datos que no desea). La garantía de la calidad de los datos se complica al tener que volver a identificar continuamente lo que es "basura vieja que tememos eliminar pero nunca queremos usar o actualizar de nuevo" y cosas nuevas que nos importan.
¿Se está borrando porque fue un error? Si la fila corresponde a una entidad en la vida real, tal vez sea interesante mantener y establecer una bandera "vaporizada", "muerta", "abandonada". Si inserta accidentalmente una fila que no corresponde a ninguna entidad en la vida real, un DELETE no es malo. ¿Son importantes los clientes imaginarios que nunca existieron para mantener en la mesa del cliente?
Y, por último, la personalidad juega un papel importante. Las personas pueden ser packrats con datos, también. Si un DBA mantiene todos sus periódicos de hace 30 años y no le gusta borrar datos, tal vez debería asegurarse de que está tomando decisiones de diseño de datos basadas en los méritos y no en una preferencia personal irrelevante.
¿Cómo es complicado con los registros de unión? Creo que la misma lógica se aplica a las relaciones como a las entidades. – dkretz
Porque la relación entre los dos registros se puede "eliminar" por sí misma, lo que indica que ya no están relacionados, pero que una vez lo fueron.Ahora, ¿y si alguien quiere volver a agregar la relación? Puede no ser un problema para todas las aplicaciones. – Draemon