Elección del tipo de datos para la clave principal

22/07/2004 - 22:44 por Vicks | Informe spam
Hola,



Para un campo CodCliente (con números correlativos), clave principal de la
tabla de CLIENTES, que tipo de datos consideráis que sería más adecuado:
char(5), varchar(5) o int.



¿Cuál ocupa menos espacio y consume menos recursos?



Gracias.



Vicks

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera [MVP SQL]
23/07/2004 - 02:03 | Informe spam
En mi opinión usaría INT, ya que es un valor numérico incremental. Me
parecería una mala práctica usar tipos de datos alfanuméricos para datos que
son exclusivamente numéricos.

El espacio que ocupa cada datatype puedes estudiarlo en los Books Online
(BOL) de tu instalación SQL Server.

Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Vicks" wrote in message
news:
Hola,



Para un campo CodCliente (con números correlativos), clave principal de la
tabla de CLIENTES, que tipo de datos consideráis que sería más adecuado:
char(5), varchar(5) o int.



¿Cuál ocupa menos espacio y consume menos recursos?



Gracias.



Vicks


Respuesta Responder a este mensaje
#2 Vicks
23/07/2004 - 17:52 | Informe spam
Gracias por tu respuesta.

Creía que los datos numéricos solo se definían cuando se realizaban
operaciones matemáticas con ellos, aunque supongo que la clave principal
tiene un tratamiento especial.

Gracias.

Un saludo

Vicks
"Gustavo Larriera [MVP SQL]" escribió en el
mensaje news:%
En mi opinión usaría INT, ya que es un valor numérico incremental. Me
parecería una mala práctica usar tipos de datos alfanuméricos para datos


que
son exclusivamente numéricos.

El espacio que ocupa cada datatype puedes estudiarlo en los Books Online
(BOL) de tu instalación SQL Server.

Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Vicks" wrote in message
news:
> Hola,
>
>
>
> Para un campo CodCliente (con números correlativos), clave principal de


la
> tabla de CLIENTES, que tipo de datos consideráis que sería más adecuado:
> char(5), varchar(5) o int.
>
>
>
> ¿Cuál ocupa menos espacio y consume menos recursos?
>
>
>
> Gracias.
>
>
>
> Vicks
>
>


Respuesta Responder a este mensaje
#3 Javier Loria
23/07/2004 - 19:28 | Informe spam
Hola:
Yo uso mucho en llaves primarias numericas pequenas (Facturas, Recibos,
Ordenes de Compra, etc), columnas tipo CHAR en vez INT.
La facilidad de manejar formatos de presentacion es una buena
justificacion. La perdida de rendimiento entre un 6 bytes/4 bytes no me
preocupa demasiado, pero reconozco que tiene un costo en rendimiento.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Vicks escribio:
Gracias por tu respuesta.

Creía que los datos numéricos solo se definían cuando se realizaban
operaciones matemáticas con ellos, aunque supongo que la clave
principal tiene un tratamiento especial.

Gracias.

Un saludo

Vicks
"Gustavo Larriera [MVP SQL]" escribió en el
mensaje news:%
En mi opinión usaría INT, ya que es un valor numérico incremental. Me
parecería una mala práctica usar tipos de datos alfanuméricos para
datos que son exclusivamente numéricos.

El espacio que ocupa cada datatype puedes estudiarlo en los Books
Online (BOL) de tu instalación SQL Server.

Gustavo Larriera
Uruguay LatAm
http://sqljunkies.com/weblog/gux/
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga
ningun derecho / This posting is provided "AS IS" with no
warranties, and confers no rights.
"Vicks" wrote in message
news:
Hola,



Para un campo CodCliente (con números correlativos), clave
principal de la tabla de CLIENTES, que tipo de datos consideráis
que sería más adecuado: char(5), varchar(5) o int.



¿Cuál ocupa menos espacio y consume menos recursos?



Gracias.



Vicks
Respuesta Responder a este mensaje
#4 Lázaro
27/07/2004 - 13:16 | Informe spam
La otra gran ventaja de los int, o long, es que a la hora de comparaciones
con los índices no le afectan los juegos de caracteres instalados.

Si tienes una clave char, y por ejemplo le has dicho que no distinga entre
mayúsculas y minúsculas a la base de datos cuando compara internamente
tendría que comparar todas las variaciones

Select * from tabla1 where clave="H2O"
internamente son válidos:
H2O
h2O
H2o
h2o

cuatro comparaciones, ni te cuento con los acentos donde una O, se convierte
en O,o,ó, Ó,ò,Ò, ô, etc, etc...

así que cuidadín.

Salu2

"Vicks" wrote in message
news:
Gracias por tu respuesta.

Creía que los datos numéricos solo se definían cuando se realizaban
operaciones matemáticas con ellos, aunque supongo que la clave principal
tiene un tratamiento especial.

Gracias.

Un saludo

Vicks
"Gustavo Larriera [MVP SQL]" escribió en el
mensaje news:%
> En mi opinión usaría INT, ya que es un valor numérico incremental. Me
> parecería una mala práctica usar tipos de datos alfanuméricos para datos
que
> son exclusivamente numéricos.
>
> El espacio que ocupa cada datatype puedes estudiarlo en los Books Online
> (BOL) de tu instalación SQL Server.
>
> Gustavo Larriera
> Uruguay LatAm
> http://sqljunkies.com/weblog/gux/
> Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
> derecho / This posting is provided "AS IS" with no warranties, and


confers
> no rights.
> "Vicks" wrote in message
> news:
> > Hola,
> >
> >
> >
> > Para un campo CodCliente (con números correlativos), clave principal


de
la
> > tabla de CLIENTES, que tipo de datos consideráis que sería más


adecuado:
> > char(5), varchar(5) o int.
> >
> >
> >
> > ¿Cuál ocupa menos espacio y consume menos recursos?
> >
> >
> >
> > Gracias.
> >
> >
> >
> > Vicks
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida