none
Tipo smallint RRS feed

  • Pergunta

  • Olá Pessoal ,

     

    A dúvida é a seguinte:

     

    1-Sempre que uma tabela vai conter poucos registros eu crio a chave primária do tipo integer.Esta errado ? O certo seria do tipo smallint ? E se esta chave primária do tipo smallint for chave estrangeira numa outra tabela com muitos registros , haveria impacto sendo do tipo smallint ?

     

    Obrigado,

     

     

     

     

     

     

    quarta-feira, 18 de janeiro de 2012 13:19

Respostas

  • Errado não está, apenas nao está utilizando a melhor prática.

    Se vc vai gravar poucos registros pode até utilizar o tinyint, que armazena até 255.

    Ao invés de gastar 4 bytes no caso do int, vc irá ocupar apenas 1 byte.

    A chave estrangeira deve ser do mesmo tipo.

     

    Qualquer dúvida fique a vontade em perguntar.

    Abraços

     

    Ozimar

     


    Ozimar Henrique http://ozimar.com
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 18 de janeiro de 2012 15:42
    • Marcado como Resposta Harley Araujo sexta-feira, 20 de janeiro de 2012 12:13
    quarta-feira, 18 de janeiro de 2012 15:19
  • Boa Tarde,

    O ideal é sempre usar o menor tipo que contemple todos os valores do domínio proposto. Um SMALLINT por exemplo contempla de -32768 a 32767 enquanto que o INT vai em algo como -2bi a +2bi. Se o domínio de valores está no RANGE de SMALLINT, usar o INT só incorrerá em espaço desnecessário (dados e índices). O mesmo raciocínio vale para TINYINT (0 a 255), mas vale a pena lembrar que TINYINT não tolera números negativos.

    Sendo a chave estrangeira uma referência a chave primária, não há qualquer tipo de impacto se os tipos forem os mesmos (independente da quantidade de registros).

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 18 de janeiro de 2012 15:42
    • Marcado como Resposta Harley Araujo sexta-feira, 20 de janeiro de 2012 12:13
    quarta-feira, 18 de janeiro de 2012 15:42

Todas as Respostas

  • Errado não está, apenas nao está utilizando a melhor prática.

    Se vc vai gravar poucos registros pode até utilizar o tinyint, que armazena até 255.

    Ao invés de gastar 4 bytes no caso do int, vc irá ocupar apenas 1 byte.

    A chave estrangeira deve ser do mesmo tipo.

     

    Qualquer dúvida fique a vontade em perguntar.

    Abraços

     

    Ozimar

     


    Ozimar Henrique http://ozimar.com
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 18 de janeiro de 2012 15:42
    • Marcado como Resposta Harley Araujo sexta-feira, 20 de janeiro de 2012 12:13
    quarta-feira, 18 de janeiro de 2012 15:19
  • Boa Tarde,

    O ideal é sempre usar o menor tipo que contemple todos os valores do domínio proposto. Um SMALLINT por exemplo contempla de -32768 a 32767 enquanto que o INT vai em algo como -2bi a +2bi. Se o domínio de valores está no RANGE de SMALLINT, usar o INT só incorrerá em espaço desnecessário (dados e índices). O mesmo raciocínio vale para TINYINT (0 a 255), mas vale a pena lembrar que TINYINT não tolera números negativos.

    Sendo a chave estrangeira uma referência a chave primária, não há qualquer tipo de impacto se os tipos forem os mesmos (independente da quantidade de registros).

    [ ]s,

    Gustavo Maia Aguiar
    Blog: http://gustavomaiaaguiar.wordpress.com
    Vídeos: http://www.youtube.com/user/gmasql


    Classifique as respostas. O seu feedback é imprescindível
    • Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 18 de janeiro de 2012 15:42
    • Marcado como Resposta Harley Araujo sexta-feira, 20 de janeiro de 2012 12:13
    quarta-feira, 18 de janeiro de 2012 15:42
  •  

     

    Obrigado pessoal!

    quarta-feira, 18 de janeiro de 2012 18:19