Al diseñar un esquema para un DB (por ejemplo, MySQL), surge la pregunta de si normalizar completamente las tablas o no.¿Debo normalizar mi base de datos o no?
Por un lado, las uniones (y las restricciones de clave externa, etc.) son muy lentas y, por otro lado, se obtienen datos redundantes y la posibilidad de incoherencia.
¿Es "optimizar el último" el enfoque correcto aquí? es decir, crear un DB normalizado según el libro y luego ver qué se puede desnormalizar para lograr la ganancia de velocidad óptima.
Mi temor, con respecto a este enfoque, es que estableceré un diseño de base de datos que podría no ser lo suficientemente rápido, pero en esa etapa sería muy doloroso refacturar el esquema (mientras se soportan los datos existentes). Esta es la razón por la cual estoy tentado de olvidarme temporalmente de todo lo que aprendí sobre las prácticas "adecuadas" de RDBMS, y probar el enfoque de "mesa plana" por una vez.
En caso de que este DB vaya a tener un efecto de inserción, ¿la decisión?
Hace una gran diferencia de qué aplicación está hablando. ¿Es una lógica comercial o empresarial o un sitio web público o algo más? –
@Bogdan, es un sistema que rastrea muchos objetos con ubicación geográfica. –
Bueno, ustedes básicamente me asustaron directamente a la 5ta forma normalizada. Así que gracias. Aún así es interesante leer las respuestas. –