Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-01-2004
KayserSoze KayserSoze is offline
Miembro
 
Registrado: ene 2004
Posts: 33
Poder: 0
KayserSoze Va por buen camino
Problema con Índice

Hola.

Tengo una tabla de base de datos bastante grande con datos de personas.

El problema es que para el caso en que se usa, no se tiene el dato del RUT. el cuál se puede usar como un identificador para cada persona.

Al no tener esto, la idea fue crear un índice y así manejar como dato único el nombre, apellido paterno y apellido materno, pero el problema ahora es que no necesariamente siempre se llenan los 3 datos. Por ejemplo el apellido paterno también puede ser la razón social de una empresa, lo que significa que no tendría nombres ni apellido materno.

El problema radica que al hacer un índice único, los valores de los campos que componen el índice no pueden ser nulos. Yo se que lo puedo manejar de todas maneras usando valores default para cada campo, pero realmente se pone demasiado complejo por la envergadura de la aplicación.

La soluciones que me gustaria descartar como primera instancia son:

1.- yo uso firebird 1.0, con la última versión podré lograr un índice parte de sus campos NULL.
2.- alguien conoce algún algoritmo de HASHING con el que pueda entrar una cadena generada por los 3 campos para así tener un identificador ÚNICO-IRREPETIBLE para así poder simular de alguna manera el rut que no poseo?

espero que me puedan ayudar.

gracias.

Eduardo.
Responder Con Cita
  #2  
Antiguo 29-01-2004
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Yo creo que independientemente de que logres lo que quieres, por ejemplo concatenar los tres campos y guardarlos en un cuarto campo y éste indexarlo, no es buena idea. Entiendo que ha habido un fallo en el diseño, o se utiliza el RUT que según dices no existe o se le da un código a cada cliente por ejemplo el código de contabilidad 430???? o un número que se vaya incrementando....

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 29-01-2004
KayserSoze KayserSoze is offline
Miembro
 
Registrado: ene 2004
Posts: 33
Poder: 0
KayserSoze Va por buen camino
Cita:
Empezado por marcoszorrilla
Yo creo que independientemente de que logres lo que quieres, por ejemplo concatenar los tres campos y guardarlos en un cuarto campo y éste indexarlo, no es buena idea. Entiendo que ha habido un fallo en el diseño, o se utiliza el RUT que según dices no existe o se le da un código a cada cliente por ejemplo el código de contabilidad 430???? o un número que se vaya incrementando....

Un Saludo.

te entiendo, pero mi idea no es prescisamente concatenar los 3 y ponerlos en un campo, sino que aplicar un algoritmo HASHING a la cadena para que me entregue un identificador de largo pequeño.

lamentablemente en el lugar en donde se implementa este software, no cuentan con la información, no es relevante, pero a su vez el volumen de información ingresada es considerable, por lo que no quiero llenar una tabla con 100 mil datos y que 20 mil de ellos esten repetidos.

en estos momentos yo uso un id para cada persona, pero es un autoincremento que sirve para relacionar con el resto de las tablas, pero necesito manejar la redundancia.

Eduardo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:06:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi