Digamos que tengo una lista de personas en mi almacén de datos. Cada persona allí puede tienen los siguientes campos:¿Cómo organizar correctamente la búsqueda de la persona?
- apellido (*)
- nombre
- segundo nombre
- id (*)
- el permiso de conducir (*)
- otro ID (*)
- fecha de nacimiento
- región
- lugar de nacimiento
Al menos uno de los campos marcados con (*) deben existir.
Ahora el usuario me proporciona la misma lista de campos (y otra vez al menos uno de los campos marcados con (*) se debe proporcionar). Debería buscar la persona que el usuario me proporcionó. Pero no todos los campos deben coincidir. Debo mostrarle al usuario de alguna manera de qué manera estoy seguro en los resultados de la búsqueda. Algo así como:
- si la persona igualada por
id
ylast name
(y proporcionado por el usuario sólo estos 2 campos para la búsqueda), entonces estoy seguro de que resultado es correcto (100%); - si la persona coincide con
id
ylast name
(y el usuario proporcionó otros campos, que se encontraron en la base de datos, pero no se encontraron), entonces estoy seguro de que el resultado es casi correcto en un 60%; - etc.
(los números se proporcionan simplemente como ejemplo)
¿Cómo puedo organizar dicha búsqueda? ¿Hay algún algoritmo estándar? También me gustaría minimizar el número de solicitudes a la base de datos.
P.S. No puedo proporcionar al usuario los valores de campo reales de la base de datos.