Usuário com melhor resposta
Tipo smallint

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,
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
-
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
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
-
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
-