none
Donde insertar esta columna RRS feed

  • Pregunta

  • Estimados.
    Tengo una tabla llamada tabla1, que contiene:

    NumeroRes CodigoCliente CodigoEmpresa Tipo y unos 5 campos mas

    La llave son estos 4 campos

    Quisiera insertar un nuevo campo, llamado Folio, pero tengo la disyuntiva si hacerlo en la misma tabla o en una nueva, ya que la tabla contiene 1 Millon de registros y solo el 10% de estos contrendra valor en el campo nuevo llamado Folio, por otra parte, como 4 campos son PK no se si vale la pena crear una nueva tabla que contendra estos 4 campos mas el campo folio y tendra unos 100 mil registros.

    Espero haberme explicado.
    Atte.
    PENTA,



    martes, 13 de octubre de 2009 17:40

Respuestas

  • Hola.

    Es una decisión que has de valorar por el tamaño y por la complejidad que te va a comportar. Para ello es fundamental conocer el tamaño de los cuatro campos de la clave y sobre todo, el tamaño del nuevo campo (folio). Si fuera un campo pequeño (un int, por ejemplo), es muy poco probable que dicho aumento comportara un tamaño de fila tal que supusiera un descenso considerable en el número de registros por página y, por consiguiente, sería mejor que se añadiera el campo a la tabla.

    Sólo si folio es muy grande y los campos de la clave pequeños, con un 10% de presencia (que ya es bastante alto) te compensaría crear la nueva tabla.



    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    martes, 13 de octubre de 2009 17:45
    Moderador
  • Hay ventajas y desventajas:

    1. Agregar la columna FOLIO a la TABLA1.
    - Ventajas: Toda consulta que vaya a mostrar FOLIO se hace directamente sobre la misma tabla.
    - Desventajas: Espacio desperdiciado, el 90% de las filas no tendrán valores de FOLIO.

    2. Agregar una TABLA2 con la columna FOLIO (y las 4 columnas que forman la PK).
    - Ventajas: Mejora el uso del espacio (TABLA2 tendrá tantas filas como folios), permite mantenimiento aislado de los folios, permite consultas de folios sobre un conjunto menor de filas.
    - Desventajas: Las consultas que requieran el dato folio van a tener que hacer joins entra ambas tablas, los programas de mantenimiento de datos requieren una transacción entre ambas tablas.

    Personalmente opino que si FOLIO es una columna para almacenar un texto o un binario, la opción 2 parece más adecuada.


    En base a eso se puede tomar una decisión.


    Gustavo Larriera Sosa http://www.linkedin.com/in/gustavolarriera -- Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
    • Propuesto como respuesta T.ControL martes, 13 de octubre de 2009 17:50
    • Marcado como respuesta Rafael Fagundes viernes, 20 de noviembre de 2009 16:47
    martes, 13 de octubre de 2009 17:47
    Moderador

Todas las respuestas

  • Hola.

    Es una decisión que has de valorar por el tamaño y por la complejidad que te va a comportar. Para ello es fundamental conocer el tamaño de los cuatro campos de la clave y sobre todo, el tamaño del nuevo campo (folio). Si fuera un campo pequeño (un int, por ejemplo), es muy poco probable que dicho aumento comportara un tamaño de fila tal que supusiera un descenso considerable en el número de registros por página y, por consiguiente, sería mejor que se añadiera el campo a la tabla.

    Sólo si folio es muy grande y los campos de la clave pequeños, con un 10% de presencia (que ya es bastante alto) te compensaría crear la nueva tabla.



    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    martes, 13 de octubre de 2009 17:45
    Moderador
  • Hay ventajas y desventajas:

    1. Agregar la columna FOLIO a la TABLA1.
    - Ventajas: Toda consulta que vaya a mostrar FOLIO se hace directamente sobre la misma tabla.
    - Desventajas: Espacio desperdiciado, el 90% de las filas no tendrán valores de FOLIO.

    2. Agregar una TABLA2 con la columna FOLIO (y las 4 columnas que forman la PK).
    - Ventajas: Mejora el uso del espacio (TABLA2 tendrá tantas filas como folios), permite mantenimiento aislado de los folios, permite consultas de folios sobre un conjunto menor de filas.
    - Desventajas: Las consultas que requieran el dato folio van a tener que hacer joins entra ambas tablas, los programas de mantenimiento de datos requieren una transacción entre ambas tablas.

    Personalmente opino que si FOLIO es una columna para almacenar un texto o un binario, la opción 2 parece más adecuada.


    En base a eso se puede tomar una decisión.


    Gustavo Larriera Sosa http://www.linkedin.com/in/gustavolarriera -- Este mensaje se proporciona tal como es, sin garantías de ninguna clase.
    • Propuesto como respuesta T.ControL martes, 13 de octubre de 2009 17:50
    • Marcado como respuesta Rafael Fagundes viernes, 20 de noviembre de 2009 16:47
    martes, 13 de octubre de 2009 17:47
    Moderador