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

Claves primarias. Longitud.

Estas en el tema de Claves primarias. Longitud. en el foro de Bases de Datos General en Foros del Web. Hola. Tengo que hacer con Access y vba una aplicación. En la base de datos tengo una tabla cuyos registros se identifican inequívocamente por la ...
  #1 (permalink)  
Antiguo 17/04/2009, 02:26
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Claves primarias. Longitud.

Hola. Tengo que hacer con Access y vba una aplicación. En la base de datos tengo una tabla cuyos registros se identifican inequívocamente por la combinación de 3 campos:

fecha_alta: 20090417
sociedad: 0001
oficina: 0001

Mi duda es si, en cuanto a rendimiento, es preferible crear un nuevo campo numérico cuyos valores sean la concatenación de esos 3 campos convertidos a tipo "Decimal" (14bytes), que en Access es el único que me aguanta números de 16 dígitos.

2009041700010001

o lo mismo pero con tipo string (16bytes)

o si el hecho de tener un campo clave con un número tan largo o con un alfanumérico de 16 caracteres va a resultar más pesado para consultas y búsquedas que el usar una clave combinada por los 3 campos originales separados.

Tengo unas cuantas tablas que se relacionarán con esta mediante la clave primaria que le ponga a esta, así que este último caso me implicaría poner en todas las demás tablas 3 campos para la clave ajena. Y todas las consultas tendrán que filtrar por 3 campos en lugar de uno.

¿Alguien se las ha visto con algo parecido y me puede aconsejar la forma de hacerlo?. Gracias de antemano.
  #2 (permalink)  
Antiguo 19/04/2009, 13:25
 
Fecha de Ingreso: noviembre-2004
Mensajes: 92
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: Claves primarias. Longitud.

Si dejas los campos separados al menos podrás hacer consultas por fecha_alta, o por fecha_alta y sociedad y usarás el índice.

Yo creo que concatenes o no el rendiemiento será muy similar.
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 22:04.