GARANTIR DESCONTO

Fórum Dados Pré-determinados, salvar nome ou código? #55439

08/03/2006

0

Oi pessoal, blz? To com mais uma dúvida que surgiu de outras já tiradas. Agradeço a quem puder me ajudar.

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

Aersoftware

Responder

Posts

08/03/2006

Sremulador

utilize o CASE que vai ficar blz...


Responder

Gostei + 0

09/03/2006

Aersoftware

Mas é melhor usar códigos ao invés de nomes?



Allan Elias Ramos :wink:


Responder

Gostei + 0

09/03/2006

Vinicius2k

Colega,

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.


Responder

Gostei + 0

09/03/2006

Aersoftware

Hmm.. entendi.. mas no caso de não ser um índice. Já que são campos supérfluos, que raramente serão usados pra pesquisas (acho até que não colocarei pesquisa pra esse tipo de dado).

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:


Responder

Gostei + 0

09/03/2006

Vinicius2k

Eu diria que não há problema, mas existe influência no tamanho do banco de dados. É possível que seja insignificante em tabelas com poucos registros, mas com muitos milhares de registros, você estaria ´desperdiçando´ espaço.

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.


Responder

Gostei + 0

09/03/2006

Aersoftware

hmmm.. me convenceu.. hehehe.. vou usar códigos.. hehehe.. valeu.. abraços.



Allan Elias Ramos :wink:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar