FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Campo Llave grande en Firebird
Buen día, una pregunta, estoy desarrollando una aplicacion en la cual se van a crear registros únicos en varios lugares (se piensa vender el software con miras a consolidar algún día las BD's).
Tengo el campo llave en el cual pienso poner una serie de datos concatenados haciendo una cadena de posiblemente 10 caracteres, tipo RFC o CURP en México. ¿Sería correcto hacer esto? ¿No son demasiados caracteres para un campo llave lo cual vuelva lenta la búsqueda? P.D. Estoy iniciando con Firebird y no se como funcione, por eso la pregunta.
__________________
Javier Oros dice: Deus nobiscum, quis contra nos |
#2
|
||||
|
||||
No creo que 10 caracteres sea un campo grande para crear una PK.
Un Saludo.
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
||||
|
||||
Tienes más opciones:
Crear un campo ID integer que sea PK y se autoincremente y luego crear los diferentes campos y unirlos en un indice unívoco. Esto te permitirá luego hacer busquedas por solo uno de los campos. Deberás tener en cuenta que deberías hacer un índice apropiado para esta búsqueda. También puedes crear la PK directamente de los campos que necesites:
|
#5
|
||||
|
||||
En mi opinión, Usaría un campo BigInt como clave primaria (que será en delphi un Int64).
Dicho campo no tendría ningún significado para la lógica de negocios, es decir, ese número no se usa en número de facturas ni en nada de nada, únicamente sería para identificar un registro, nada más. Así puedes cambiar el valor, borrar maestros y detalles sin problemas y sin afectar a la numeración de facturas y esas cosas.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#6
|
||||
|
||||
Cita:
Cita:
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#7
|
||||
|
||||
Gracias a todos muchachos, y gracias RONPABLO por el link al otro post, muy ilustrativo. Por lo que leí no le afecta a la búsqueda que el campo llave sea alfanumerico y grande. Para el campo llave he decidido concatenar algunas cadenas de la siguiente manera:
- Primeras dos letras del nombre. - Primeras dos letras del apellido paterno - Primeras dos letras del apellido materno. Si no tiene apellido materno (aquí en México hay casos) se ponen dos "x" en su lugar. - Fecha de nacimiento con formato ddmmyyyy - Una letra del alfabeto empezando por la letra "A" (caracter extra para evitar duplicados). Si esta combinación ya existe el caracter extra se va incrementando de acuerdo al alfabeto. De esta forma el campo llave quedaría como una cadena alfanumerica de 15 caracteres.
__________________
Javier Oros dice: Deus nobiscum, quis contra nos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Longitud del Campo muy grande | aanil | SQL | 2 | 28-04-2010 02:34:30 |
cambiar campo de tabla a campo llave | gmontes | Firebird e Interbase | 0 | 19-02-2008 17:42:19 |
Grande firebird | lafirma | Noticias | 2 | 28-07-2006 01:12:14 |
Como hacer una Modificación en Cascada en un Campo Llave???? | AGAG4 | Firebird e Interbase | 0 | 18-01-2005 01:58:36 |
Interbase 6.5 Campo LLave Sin la restriccion "NOT NULL" se puede?? | norberto_larios | Conexión con bases de datos | 3 | 07-09-2004 23:34:12 |
|