Fórum Dados Pré-determinados, salvar nome ou código? #55439
08/03/2006
0
Tenho alguns campos que salvo no bd com dados pré-determinados.
Ex. Avaliação: Excelente, Muito Boa, Boa, Regular, Ruim, Péssimo.
Esse tipo de dados não vai mudar, vai ser sempre as oções pré-estabelecidas, por isso não criei tabela pra elas.
O que fiz foi criar campos Varchar pra entrar esse tipo de dado. Então ele entra como o nome (ex. ´Excelente´).
A dúvida é, o que é melhor, entrar com nomes como faço ou determinar códigos pra salvar no banco? Tipo, Excelente = 1, Muito Bom = 2.. e assim por diante. Aí o campo do banco seria Integer ou SmallInt.
Isso facilita pesquisa ou é indiferente? Pergunto pq eu pretendo sempre mostrar o nome, e não o valor, e trabalhando com os nomes diretos nao tenho esse problema. Eu teria esse problema trabalhando com valores?
Grato pela ajuda..
Allan Elias Ramos :wink:
Aersoftware
Curtir tópico
+ 0Posts
08/03/2006
Sremulador
Gostei + 0
09/03/2006
Aersoftware
Allan Elias Ramos :wink:
Gostei + 0
09/03/2006
Vinicius2k
Para estes casos, normalmente, eu utilizo CHAR(1) com os pseudo-códigos (´1´, ´2´, ´3´... ou ´A´, ´B´,´C´).
Só não utilizo CHAR(1) quando o campo é indexado e/ou estará presente em WHEREs ou JOINs. Neste caso, utilizo SMALLINT, porque um índice por SMALLINT é mais eficiente (rápido) do que com CHAR ou VARCHAR. Apesar de que, para esta situação, não fará muita diferença porque o índice será ´pobre´.
Usando CHAR ou SMALLINT, faço o tratamento para exibição dentro da aplicação.
Gostei + 0
09/03/2006
Aersoftware
Não tem diferença colocar no campo ´1´ ou ´Excelente´, certo? A não ser o tamanho do banco, mas acho que isso não influencia muito, né?
Pergunto pq acho mais fácil cadastrar com o nome inteiro, até pra visualizar. Gostaria de saber se é recomendado ou não.
Allan Elias Ramos :wink:
Gostei + 0
09/03/2006
Vinicius2k
O ´problema´ pode vir mais tarde... ´amanhã´ você decide que terá mais uma opção como ´Excelentíssimo´ :).
Antes o maior tamanho para seu dado era ´Excelente´ 9 e você criou um VARCHAR(9) para armazenar esse dado. Resultado: terá que alterar a estrutura da tabela pois seu campo não comporta o valor que você quer armazenar.
Em contrapartida, se criar este campo já com um tamanho maior do que o necessário estará desperdiçando espaço em disco.
Existem prós e contras mas, na prática, não há um problema em utilizar da forma que você deseja.
Gostei + 0
09/03/2006
Aersoftware
Allan Elias Ramos :wink:
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)