PDA

Ver la Versión Completa : integridad referencial


Pollo2004
29-08-2008, 12:52:34
Hola a todos, estoy aprendiendo paradox y me ah surgido un problema con alguna de las tablas a la hora de relacionarlas.

Tengo q relacionar ciertas tablas, pero el problema esta en q una de estas es master de dos, para ser mas claro se los muestro

TABLA MAESTRA TABLA DETALLE
*FACTURA * CLIENTES

*FACTURA * DETALLE

*DETALLE * PRODUCTOS

Ej: en la relacion FACTURA/CLIENTES. (coloco el key en la tabla factura en el campo CODCLIENTE y luego en la tabla de CLIENTES hago la relacion y todo barbaro).
Luego con la relacion DETALLE/PRODUCTOS, tambien todo bien.

EL PROBLEMA SURGE CUANDO QUIERO HACER LA TERCERA RELACION, FACTURA/DETALLE, xq en la tabla de factura tendria q cambiar el campo key y poner NUMFACTURA, pero haciendo esto pierdo la otra relacion.

Mi pregunta es como puedo hacer esto? usar la misma tabla con dos key para relacionarlas con dos tablas diferentes.

Gracias por su tiempo!

Fenareth
29-08-2008, 13:56:45
Hola a todos, estoy aprendiendo paradox y me ah surgido un problema con alguna de las tablas a la hora de relacionarlas.

Tengo q relacionar ciertas tablas, pero el problema esta en q una de estas es master de dos, para ser mas claro se los muestro

TABLA MAESTRA TABLA DETALLE
*FACTURA * CLIENTES

*FACTURA * DETALLE

*DETALLE * PRODUCTOS

Ej: en la relacion FACTURA/CLIENTES. (coloco el key en la tabla factura en el campo CODCLIENTE y luego en la tabla de CLIENTES hago la relacion y todo barbaro).
Luego con la relacion DETALLE/PRODUCTOS, tambien todo bien.

EL PROBLEMA SURGE CUANDO QUIERO HACER LA TERCERA RELACION, FACTURA/DETALLE, xq en la tabla de factura tendria q cambiar el campo key y poner NUMFACTURA, pero haciendo esto pierdo la otra relacion.

Mi pregunta es como puedo hacer esto? usar la misma tabla con dos key para relacionarlas con dos tablas diferentes.

Gracias por su tiempo!

Hola Pollo2004 ! :)

Primero considero que poner el CODCliente como Campo llave de la Tabla de Facturas no es lo ideal, porque me imagino que más de una factura será para el mismo cliente, entonces si tu lo tienes este campo como llave, no te permitirá que haya más de uno...

Yo lo pensaría así :
Tabla: Clientes (campo llave CODCLIENTE) >> Tabla: Factura (relacionado con campo NO llave CODCLIENTE)

Tabla: Factura (campo llave NUMFACTURA) >> Tabla: Detalle (relacionado con campo NO llave NUMFACTURA)

Tabla: Productos (campo llave IDPRODUCTO) >> Tabla: Detalle (relacionado con campo NO llave IDPRODUCTO)


de esta manera haces la conexión entre las todas las tablas...

Espero te sirva y cualquier duda hazla saber ;)

Pollo2004
04-09-2008, 21:10:24
Hola, perdon por retraserme, pero he leido tu respuesta y la implementado, pero me ha surgido otro problema.
Yo al tener dos tablas relacionadas con la misma de detalle a la cual le tengo q dar los atributos de MASTER FIELDS, MASTER SOURCE e INDEX NAME. Quisiera saber como se hace!
Me gustaria encontrar algun manual o apunte donde se explique claramente el todo lo q tenga q ver con TABLAS y INTEGRACION REFERENCIAL. Si conoces alguno y me lo podes facilitar seria buenisimo.
GRACIAS POR TU TIEMPO.