[Pgsql-ayuda] UNA PREGUNTA DE SQL

Guille -bisho- bisho@onirica.com
23 Jul 2002 01:59:52 +0200


> -TENGO UNA TABLA CON MAS DE 100 CAMPOS, Y ESTA TABLA CONTIENE MAS DE
> 200,000 REGISTROS.
> UN AMIGO MIO ME DIJO QUE ESA TABLA TENIA MUCHOS CAMPOS Y QUE DEBIA
> DIVIDIRLA EN VARIAS TABLAS 
> CON MENOS CAMPOS.
>  
> ENTONCES NO SE QUE ES MEJOR, TENER UNA TABLA CON 100 CAMPOS Y 200,000
> REGISTROS O TENER VARIAS
> TABLAS (3 ó 4) CON 200,000 REGISTROS, PERO CON MENOS CAMPOS.

El problema de una tabla de 100 campos es que si tiene tantos
posiblemente esté mal diseñada.

Raramente se llega a tal numero de campos. En cantidad si que son
normales cantidades altas, pero en campos da mucha mayor riqueza el
dividir los datos en diversas tablas que se relacionan entre si.

Seguramente en tu caso tengas campos vacios, campos con los mismos datos
(la direccion de una persona aparece en varias filas), etc.

No se trata de dividir la tabla sin mas en varias tablas, sino de si
tenemos personas con direccion, que compran productos, se divide en 3
tablas:
personas (nombre, direccion, ... ) cada persona tiene una sola entrada
productos (datos de cada producto... )
compras (id_persona, id_producto, cantidad, precio, fecha...)

Si los productos fueran de diversos proveedores, habría una tabla
proveedores.

Los diseños de base de datos no deben contener datos redundantes,
repetidos, y en su lugar usar tablas que relacionen otras dos. Así
podrás sacar estadísicas mucho mejores, mayor integridad y reducir los
tiempos de búsqueda, y tamaño de la DB.

No se si me he explicado, pero si comentas que tiene tu DB posiblemente
te podamos ayudar a reorganizar la estructura de datos.

PD: No deberías escribir en mayusculas. Según las reglas de nettiquete
significa que gritas y esto es una lista de correo de muchas personas,
no sólo de una. :)

-- 
        _     Guillermo Pérez    -=] 23/07/2002 [=-
       <·)     - bisho@ ( onirica.com | eurielec.etsit.upm.es )
       ( \>
bisho!  ""\\  ::     WEB-ES: Lista sobre tecnologías del diseño y     ::
   ..........::              programación de páginas Web.             ::