Plural finito.
Vamos a establecer el esquema de tablas de una aplicación que gestione los libros de una librería. Para ello hemos de tener en cuenta los siguientes puntos:
Un libro puede tener más de un autor (vamos a poner un límite de cuatro autores).
La búsqueda de libros por autor mostrará todos los libros pertenecientes a un autor independientemente del orden en el que éste aparezca (es decir, si es el primer autor, el segundo, el tercero o el cuarto).
En primer lugar está claro que hemos de crear dos tablas: AUTORES y LIBROS, ambas de tipo maestro normal con clave numérica.
Ahora bien: ¿Cómo las enlazamos? Vamos a enunciar las dos frases habituales:
"Un autor puede escribir varios libros".
"Un libro puede ser escrito por varios autores".
Nos encontramos de nuevo con un doble plural. Este problema podría ser resuelto creando una tabla histórica intermediaria entre AUTORES y LIBROS pero, como sabemos que un libro va a tener un máximo de cuatro autores, vamos a usar otra técnica: el plural finito. Para ello unimos las dos tablas mediante un enlace singular-plural, de igual modo que haríamos si un libro fuera escrito por un solo autor.
Al establecer este enlace se crean el campo AUTORES y el índice AUTORES en la tabla LIBROS, mientras que en la tabla AUTORES crea el plural LIBROS_AUTORES.
Ahora creamos en la tabla LIBROS tres enlaces más a la tabla AUTORES, para lo cual podemos copiar en LIBROS tres veces el campo AUTORES, modificando posteriormente sus identificadores y descripciones. Acabamos de crear un plural finito. Plural ya que la tabla LIBROS está enlazada varias veces a la tabla AUTORES, y finito ya que el número de enlaces está limitado a cuatro.
A continuación editamos las propiedades del índice AUTORES:
En fórmula de partes le añadimos los campos AUTORES1, AUTORES2, AUTORES3 y AUTORES4, además del campo NAME (que en este caso sería el título del libro).
Asignamos el tipo el tipo múltiples claves al índice.
En la propiedad número de claves indicamos 4.
Al configurar como cuatro el número de claves, solamente buscará por las cuatro primeras partes del índice, es decir, los cuatro autores de cada libro, y ordenando por la otra parte que queda, el título del libro. De este modo podemos realizar búsquedas de todos los libros de un determinado autor, independientemente del campo en el que se encuentre, ahorrándonos tener que realizar una búsqueda por cada campo AUTOR que hemos creado.
Además, los índices de múltiples claves evitan que un autor sea dado de alta más de una vez, lo que ocurriría si un mismo autor fuera dado de alta en un libro como AUTOR_1 y en otro como AUTOR_2 y no estuviéramos usando un índice de múltiples claves.