Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/03/2008, 22:26
acertijocl
 
Fecha de Ingreso: febrero-2008
Mensajes: 9
Antigüedad: 16 años, 2 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_factcINT11 NOT NULL AUTO_INCREMENT ,
`
idVARCHAR(50NOT NULL,
`
rut_proveedorVARCHAR(9NOT NULL REFERENCES proveedor(rut_proveedor),
`
no_fcINT11 NOT NULL ,
`
fechaDATETIME NOT NULL,
PRIMARY KEY (id_factcrut_proveedor)
ENGINE InnoDB

ALTER TABLE 
`factura_compraADD 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_proveedorVARCHAR(9NOT NULL ,
`
rut_empresaVARCHAR(9NOT NULL REFERENCES empresa(rut_empresa),
`
nombre_fantasiaVARCHAR(100NOT NULL,
PRIMARY KEY (rut_proveedor)
ENGINE InnoDB

ALTER TABLE 
`proveedorADD 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!!!