Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Evitar Doble Registro Tabla Factura

Estas en el tema de Evitar Doble Registro Tabla Factura en el foro de Mysql en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/03/2008, 22:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 9
Antigüedad: 16 años, 1 mes
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!!!
  #2 (permalink)  
Antiguo 04/03/2008, 19:28
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Re: Evitar Doble Registro Tabla Factura

Hola
Infiero que el numero de la factura es único así que ese campo lo puedes poner como unique, así evitaras que haya valores repetidos en el campo (no_fc)

Saludos
  #3 (permalink)  
Antiguo 05/03/2008, 11:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 9
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Evitar Doble Registro Tabla Factura

Cita:
Iniciado por Genetix Ver Mensaje
Hola
Infiero que el numero de la factura es único así que ese campo lo puedes poner como unique, así evitaras que haya valores repetidos en el campo (no_fc)

Saludos
Hay que entender el sistema que planteo como: Mi empresa registra las compras y las ventas realizadas.-

Por lo tanto, el Número de Factura de Compra no es único porque perfectamente, y por casualidad, dos empresas distintas ((a las cuales se les haya comprado un producto)) pueden tener el mismo número de folio.

Por eso la restricción de que para un mismo Proveedor no puede haber ingreso de un mismo folio de Factura (no_fc), PERO sí puede existir un mismo número de folio si el Proveedor es distinto.

Espero que ahí haya quedado más clara la consulta.

Gracias.-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:18.