Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2008, 22:26
acertijocl
 
Fecha de Ingreso: febrero-2008
Mensajes: 9
Antigüedad: 18 años, 8 meses
Puntos: 0
Pregunta Evitar Doble Registro Tabla Factura

Hola Capos de las Base de Datos. Mi consulta es cómo tengo que relacionar una Tabla para que no acepte doble registro.

La idea es relacionar Factura_compra y Proveedor.

Un Proveedor puede emitir sólo una factura con su respectivo Número (no_fc). Otro Proveedor puede tener otra factura pero con el mismo Número. Por lo tanto armé la siguiente Tabla Factura_compra

CREACION FACTURA COMPRA

Código PHP:
CREATE TABLE `factura_compra` (
`
id_factc` INT( 11 ) NOT NULL AUTO_INCREMENT ,
`
id` VARCHAR(50) NOT NULL,
`
rut_proveedor` VARCHAR(9) NOT NULL REFERENCES proveedor(rut_proveedor),
`
no_fc` INT( 11 ) NOT NULL ,
`
fecha` DATETIME NOT NULL,
PRIMARY KEY (id_factc, rut_proveedor)
) 
ENGINE = InnoDB

ALTER TABLE 
`factura_compra` ADD FOREIGN KEY ( `rut_proveedor` ) REFERENCES `proveedor` (`rut_proveedor`) ON DELETE CASCADE ON UPDATE CASCADE ; 
La Tabla me anda perfecto. Cuando elimino un Proveedor se le eliminan todas las facturas de él.

CREACION PROVEEDOR

Código PHP:
CREATE TABLE `proveedor` (
`
rut_proveedor` VARCHAR(9) NOT NULL ,
`
rut_empresa` VARCHAR(9) NOT NULL REFERENCES empresa(rut_empresa),
`
nombre_fantasia` VARCHAR(100) NOT NULL,
PRIMARY KEY (rut_proveedor)
) 
ENGINE = InnoDB

ALTER TABLE 
`proveedor` ADD FOREIGN KEY ( `rut_empresa` ) REFERENCES `empresa` (`rut_empresa`) ON DELETE CASCADE ON UPDATE CASCADE ; 
Lo que quiero conseguir es que no acepte ingresar una nueva Factura_Compra cuando el Proveedor ya haya emitido una factura con ese Número_Factura (no_fc)

Seudocódigo sería:

Ingresar Rut_Proveedor
Ingresar No_Fc

Consultar en la BD por el Rut-Proveedor y posteriormente Consultar si ese Rut_Proveedor tiene No_Fc

Si existe Entonces No_Ingresar
Sino Ingresar

¿¿Cómo sería la estructura de la Tabla?? ¿¿Qué llaves primarias me faltan?? ¿¿Cómo iría?? ¿¿Se entendió?? Fui lo más claro posible.-

Muchas gracias por su infinita ayuda!!!