Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/04/2016, 19:48
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: duplicidad de datos

Pero en esa estructura no hay ninguna PK definida en tabla.
¿Lo has notado?

Que le pongas a una columna un nombre "idfactura", no implica que sea PK. Debe tener expresamente puesta esa condición.
Veo que hay otros errores: Si el IDFACTURA es un INT, el campo que apunte a ese dato como FK debe ser del mismo tipo y rango de representación, y tu estás usando un VARCHAR(45)... cosa que está mal.

Código MySQL:
Ver original
  1. CREATE TABLE `factura` (
  2.   `idfactura` INT(11) NOT NULL PRIMARY KEY,
  3.   `idcedula` INT(11) NOT NULL,
  4.   `fecha` VARCHAR(25) NOT NULL,
  5.   `costetotal` VARCHAR(45) NOT NULL
  6.  
  7. CREATE TABLE `detalles_factura` (
  8.   `iddetalle_factura` INT(11) NOT NULL PRIMARY KEY,
  9.   `idfactura` INT (11) NOT NULL,
  10.   `descripcion` VARCHAR(45) NOT NULL,
  11.   `cantprod` VARCHAR(45) NOT NULL,
  12.   `coste` VARCHAR(45) NOT NULL,
  13.   `personas` INT(11) NOT NULL,
  14.   `evento` VARCHAR(60) NOT NULL

Además tampoco tiene definidas las FK que debería. El IDCEDULA debería ser FK del cliente o de una tabla "persona", y no se ve en la tabla esa condición (INDEX solo expresa que es un campo indexado, no que sea FK

Me parece que debes repasar todos los conceptos básicos de SQL y definición de estructuras de datos, porque hay demasiados errores.

El tema se excede de este foro. Todo esto es OFF TOPIC por cuanto es tema de BBDD, y no de PHP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)