Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

integer o string como primary key

Estas en el tema de integer o string como primary key en el foro de SQL Server en Foros del Web. Hola a todos, mi consulta es saber que es mejor, crear un campo primary key como integer autogenerado o un char de 10 caracteres que ...
  #1 (permalink)  
Antiguo 19/01/2011, 10:08
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años, 5 meses
Puntos: 7
integer o string como primary key

Hola a todos, mi consulta es saber que es mejor, crear un campo primary key como integer autogenerado o un char de 10 caracteres que yo mismo genero, y saber cual es la ventajas de la mejor opción

Gracias de antemano

Última edición por alfcm; 19/01/2011 a las 10:13
  #2 (permalink)  
Antiguo 19/01/2011, 11:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: integer o string como primary key

La decision sobre que es mejor si un INT o CHAR, no te la da el tipo de dato, creo que se debe en principio al MODELO DE DATOS que tu generes, por otro lado, los IDENTITY, no te sirven para tablas que van a recibir DELETE. Saludos
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 19/01/2011, 13:17
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años, 5 meses
Puntos: 7
Respuesta: integer o string como primary key

si fuese el tipico caso de este modelo Cliente, Factura,Producto, DetalleFactura

yo quiero q en el sistema muestre los codigo de cliente como 0000000001,0000000002 ..etc igualmente para las demas tablas, pero si hago joins para mis consultas se va a demorar en procesar los datos

Como se resolveria el problema, otros me dicen que poner 2 campos un identity y otro campo char que yo mismo genero

Me gustaria saber la mejor opcion no en base a teorias, si no en la practica real

Gracias de antemano
  #4 (permalink)  
Antiguo 19/01/2011, 13:48
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: integer o string como primary key

Mi estimad@, una cosa es como ALMACENES los datos y otra muy distinca como los PRESENTES, un dato puede ser NUMERICO y podria presentarse en el formato que tu indicas 000002450, pero eso no implica que este ALMACENADO DE ESA FORMA.
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 19/01/2011, 14:36
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años, 5 meses
Puntos: 7
Respuesta: integer o string como primary key

ok iislas, pero entonces que me recomiendas, usar IDENTITY como primary key, pero a la vez me dijiste que es un problema para los delete, entonces que tipo de variable puedo usar para mi primary key en las tablas que mencione para una aplicación multiusuario

Gracias de antemano

Última edición por alfcm; 19/01/2011 a las 14:42
  #6 (permalink)  
Antiguo 19/01/2011, 15:26
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: integer o string como primary key

NUMERICO (INT, BIGINT), a lo que mejor se acomode tus necesidades.
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 19/01/2011, 22:30
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años, 5 meses
Puntos: 7
Respuesta: integer o string como primary key

gracias iislas, en todo caso tengo q crear un trigger que me autogenere el correlativo para mi primary key? si fuese asi tambien escuche que no es recomendable abusar de triggers.
  #8 (permalink)  
Antiguo 20/01/2011, 10:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: integer o string como primary key

No amig@, los triggers fueron creados en un inicio para salva-guardar la DRI (Integridad Referencial).

Por aqui ya hemos comentado de como generar numeros secuenciales

SELECT MAX(ID) + 1 FROM TUTABLA

Debes cuidar las transacciones o el multiacceso.
__________________
MCTS Isaias Islas

Etiquetas: integer, key, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:03.