10/01/2003, 22:46
|
| Colaborador | | Fecha de Ingreso: noviembre-2001 Ubicación: 127.0.0.1
Mensajes: 3.499
Antigüedad: 23 años Puntos: 69 | |
Mirá, a mi siempre me gustó tener las tablas lo más normalizadas posibles dentro de la practicidad de lo que se pretende hacer.
Qué quiero decir con esto ? Simple, en tu caso, por ejemplo, si en vez del Id del Tipo de la empresa, pusieras directamente el Tipo de la Empresa ( el nombre ), al comienzo no tendrías problema.
Pero supongamos que tienes suerte y tu base de datos comienza a crecer, y llegas a unos 500.000 registros ( en algunas aplicaciones es impresionante lo rápido que llegas a estos números ).
Aquí es dónde comienzan los problemas, porque un TipoDeEmpresa, necesita cambiar el nombre, en vez de hacer 1 update en 1 tabla, tenés que hacer un update masivo que abarcará unos 500.000 registros, con los consiguientes actualizaciones de indices, lockeos de tablas ( o con suerte, de columnas o de filas ), etc. Mucho "overhead" por algo que deberia haber sido más sencillo.
En estos casos es cuando recomiendo Normalizar.
¿Y cuándo NO normalizar? Bueno, cuando los efectos de una normalización, son más nocivos que benignos para el resultado el Script en si mismo. Uno de los pasos de una normalización ( el primero creo ) es eliminar todos los campos que pueden ser calculados en base a otros. Este es el típico ejemplo del total de mensajes de un Foro.
Según las reglas de normalizacion, si quisieramos saber la cantidad totales de mensajes de un foro, tenemos que recorrer todos los temas de cada foro, contando los mensajes que tienen, y su hubiera subforos, habría que hacer lo mismo con cada uno, entrando recursivamente dentro de cada sub foro. Demasiado no ?
Eso se soluciona TAN fácil, saltándose una regla de la normalización, que es agregando un campo extra llamado TotalMensajes que se vaya actualizando cada vez que se borra o se crea un nuevo mensaje. Luego solo leemos el contenido de esta variable y listo.
Bueno, esto es en base a mi experiencias con bases de datos, que es bien poca. Si alguien quiere agregar algo más, que se me pueda estar escapando, bienvenido sea.
Saludos. |