jueves, 28 de agosto de 2008

Relaciones,Primary key and Foreign key

PRIMARY KEY eExpression2 TAG TagName2 memo1 M, memo2 M NOCPTRANS)

Especifica un campo o combinación de campos de la tabla para crear un índice principal. No puede usar la cláusula PRIMARY KEY si antes ha creado un índice principal para un campo, ya que una tabla sólo puede tener un índice principal. Si incluye más de una cláusula PRIMARY KEY en una instrucción CREATE TABLE, Visual FoxPro genera un error.

El parámetro TagName2 especifica un nombre para la etiqueta de índice principal eExpression2. El nombre de la etiqueta de índice puede tener hasta 10 caracteres.

FOREIGN KEY eExpression4 TAG TagName4 [ NODUP ]

Crea un índice externo (no principal) y establece una relación con una tabla primaria. Puede crear múltiples índices externos para una tabla, pero la expresión para índice externo deber especificar diferentes campos de la tabla.

Puede crear relaciones persistentes entre las tablas de la base de datos. Las relaciones persistentes son relaciones entre tablas de una base de datos que se almacenan en el archivo de la base de datos y tienen las características siguientes:

A diferencia de las relaciones temporales creadas con el comando SET RELATION, las relaciones persistentes no necesitan ser creadas de nuevo cada vez que se utilizan las tablas. Sin embargo, como las relaciones persistentes no controlan la relación entre los punteros de registros de las tablas, al programar aplicaciones de Visual FoxPro se utilizan relaciones de ambos tipos.

En Visual FoxPro se utilizan los índices para establecer relaciones persistentes entre las tablas de una base de datos. La relación se define entre los índices y no entre los campos, lo que permite relacionar las tablas basándose en una expresión de índice simple o compleja.

Para preparar las relaciones

  1. Determine qué tabla tiene los registros principales y qué tabla tiene los registros relacionados.
  2. Agregue un campo de enteros a la tabla que contiene el registro principal y, a continuación, agregue un índice principal al nuevo campo.
  3. Agregue a la tabla que contiene los campos relacionados un campo que coincida con la clave principal de la otra tabla y, a continuación, agregue un índice normal al nuevo campo.

Nota Use la misma expresión para ambos índices. Por ejemplo, si usa una función en la expresión del campo de clave principal tiene que usar la misma función en la expresión del campo de clave externa.

Para crear una relación persistente entre tablas






En el Diseñador de bases de datos, elija el nombre del índice que desee relacionar y arrástrelo hasta el nombre del índice de la tabla relacionada.

–O bien–

  • Utilice la cláusula FOREIGN KEY con los comandos CREATE TABLE o ALTER TABLE.

Por ejemplo, el comando siguiente agrega una relación persistente de uno a varios entre las tablas customer y orders, basándose en la clave principal cust_id de la tabla customer y en una nueva clave externa, cust_id, de la tabla orders:

ALTER TABLE orders;
ADD FOREIGN KEY cust_id TAG ;
cust_id REFERENCES customer

Si examina el esquema de la base de datos en el Diseñador de bases de datos, verá una línea que une orders y customer, lo que representa la nueva relación persistente.

Los índices proporcionan la base para relaciones persistentes


El tipo de etiqueta o clave de índice determinará el tipo de relación persistente que puede crear. Es necesaria una etiqueta de índice principal o candidato para el lado "uno" de una relación de uno a varios; para el lado "varios" debe utilizar una etiqueta o clave de índice normal.

También puede modificar la relación.

Para modificar una relación entre tablas

  • Haga doble clic en la línea de relación entre las tablas y, a continuación, seleccione las opciones apropiadas en el cuadro de diálogo Modificar relación.

Para eliminar una relación persistente entre tablas

  1. En el Diseñador de bases de datos, haga clic en la línea de relación entre las dos tablas.

El ancho de la línea aumentará para indicar que ha seleccionado la relación.

  1. Presione la tecla SUPR.

–O bien–

Utilice la cláusula DROP FOREIGN KEY con el comando ALTER TABLE.

Por ejemplo, el comando siguiente elimina una relación persistente entre las tablas customer y orders basada en la clave principal cust_id de la tabla customer y en una clave externa, cust_id, de la tabla orders:

ALTER TABLE orders DROP FOREIGN KEY TAG cust_id SAVE


Fuente: archivo dv_foxhelp.chm del directorio de Visual Foxpro



No hay comentarios: