Actualmente estoy debatiendo un problema con mi equipo de desarrollo. Ellos creen que los campos vacíos son malas noticias. Por ejemplo, si tenemos una tabla de detalles del cliente que almacena datos para clientes de diferentes países, y cada país tiene una configuración de dirección ligeramente diferente, más 1-2 campos adicionales, p. Los detalles del cliente francés también pueden almacenar detalles para el código de entrada, y los campos de piso/nivel más título (madamme, etc.). Sudáfrica tendría un número de seguridad. Y así.Diseño de la base de datos - campos vacíos
Dado que estamos hablando de pequeñas variaciones, mi idea es incluir todos los campos en la tabla y usar lo que se necesita en cada formulario.
Mi colega cree que deberíamos tener una tabla separada con datos adicionales. P.ej. customer_info_fr. Pero esto parece frustrar totalmente el propósito de una mesa combinada en primer lugar.
El argumento es que los campos/columnas vacíos son malos, pero me cuesta encontrar la justificación en términos de principios de diseño de bases de datos a favor o en contra de este argumento y las soluciones preferidas.
Otra opción es una mini tabla EAV separada que almacena datos adicionales con parent_id, key, val fields. O para serializar datos adicionales en una columna extra_data en la tabla principal customer_data.
Creo que estoy confundido porque lo que estoy discutiendo no está cubierto por 3NF, que es lo que normalmente usaría como referencia sobre cómo estructurar los datos.
Así que mi pregunta en concreto: -
Si usted tiene pequeñas variaciones en los datos para cada registro (1-2 campos diferentes, por ejemplo) ¿cuál es la mejor manera de proceder?
Este debate es posiblemente un duplicado. La pregunta de si los campos NULL son malos se ha preguntado y respondido antes. –