lunes, 10 de marzo de 2014

Relaciones con campos claves foráneos

Las interrelaciones entre tablas son creadas a través de los campos claves foráneos que permiten almacenar el "id" de las tablas auxiliares. Pero qué sucede cuando se necesita almacenar más de 1 dato o valor de otra tabla. Es el caso de las autoridades que figuran en la catalogación de un documento, o de las funciones que desempeña una autoridad personal. En tales casos existen dos soluciones plausibles, que pueden observarse en la figura1. 

Figura1. Soluciones de interrelación con campos claves foráneos

La solución básica, implica la creación de tantos campos como valores sean necesarios almacenar de una misma tabla. Por ejemplo: id_autor1, id_autor2, id_autor3 son campos foráneos que almacenan distintos valores "id" de los autores obtenidos de la tabla "autoridades". Los campos clave foráneos son de tipo numérico.

La solución óptima implica almacenar en un campo único todos los valores de la tabla auxiliar. Por ejemplo, el campo "id_autoridades" guardará los identificadores de los distintos autores, searados por comas, o cualquier otro carácter separador ( | # @ ; : - ) entre otras muchas posibilidades. El campo clave foráneo en este caso no es de tipo numérico sino de tipo texto, ya que almacena números de identificación y caracteres separadores.

La solución básica permite la integridad referencial entre el campo foráneo de la tabla principal y el campo clave primario de la tabla auxiliar relacionada. Esto evita tener que distinguir cada valor separado por comas o caracteres separadores y por ende del uso de "scripts" o programas que manipulen previamente la cadena de caracteres almacenados.

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.