Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   uso de FOREIGN KEY (https://www.clubdelphi.com/foros/showthread.php?t=9353)

jzginez 21-04-2004 17:08:11

uso de FOREIGN KEY
 
Hola amigos estoy usando Interbase 6.0 y tengo una duda del uso de FOREIGN KEY tengo la siguiente tabla:

CREATE TABLE TESTILO (
ID VARCHAR(15) NOT NULL,
DESCRIPCION VARCHAR(40),
FECHA DATE DEFAULT 'now',
ID_MATERIAL INTEGER,
IMAGEN IMAGENES,
PRECIO FLOAT,
PRODUCDESEADA INTEGER,
EFICIENCIA INTEGER,
CANTIDAD INTEGER,
ID_CLIENTE INTEGER
);

CREATE TABLE TCORTES (
CORTE VARCHAR(15) NOT NULL,
ID_ESTILO VARCHAR(15),
FECHA DATE,
ID_COLOR INTEGER,
CANTIDAD INTEGER,
FECENTREGA DATE,
CANTREAL INTEGER,
TERMINADO LOGICO,
ENTREGADO LOGICO,
ORDENPROD INTEGER,
PAGAR FLOAT,
PRECIO FLOAT,
COBROTEORICO COMPUTED BY (cantidad * precio),
COBROREAL COMPUTED BY (cantreal * precio),
CANTENVIADA INTEGER,
COBROENVIO COMPUTED BY (cantenviada * precio),
FOREIGN KEY (ID_ESTILO) REFERENCES testilo (id)
);


Al menos que fallara el copiar pegar las tablas se crean sin nungun problema :D .

Pero el campo PRECIO de mi segunda tabla (TCORTES) no deberia existir sino tomar este campo de la primera base (TESTILO).
Mi duda es si se puede modificar la instruccion FOREIGN KEY (ID_ESTILO) REFERENCES testilo (id) de tal forma que obtenga el campo precio y así poder obtener mis campos calculados o de plano esto lo tengo que hacer creando un view.


Gracias

jachguate 21-04-2004 17:30:19

NO necesariamente tiene que ser una vista... aunque ya será cuestión del modelo, de tus necesidades, y de tu habilidad para normalizar el diseño.

El precio tampoco podes "derivarlo" desde el foreign key. Sin embargo, si podes crear un trigger Before Insert en la tabla de detalle, que "derive" el precio de la tabla maestra.

Hasta luego.

;)

jzginez 22-04-2004 23:20:25

Cita:

Empezado por jachguate
...... y de tu habilidad para normalizar el diseño.;)

Nooo, pues ya me metí en un lío porque mi habilidad es casi nula :D
jajaja

Gracias a tu consego ya lo hice con el trigger BI y este esta funcionando correctamente.


Nuevamente gracias por tu atención.

Te seguire exprimiendo el cerrebro en otra ocación. :rolleyes:


La franja horaria es GMT +2. Ahora son las 16:19:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi