Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/02/2013, 12:12
ComprasDesdeCasa
 
Fecha de Ingreso: octubre-2008
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: Porque no me deja crear estas tablas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Un campo "subtotal" no puede ser un campo UNIQUE en una factura. Eso no tiene sentido.
Es imposible que puedas pretender que un valor como ese sea único entre todas las facturas posibles.
La cosa tiene dos errores:
1) No es necesario un concepto de "subtotal", porque eso es un dato calculable, y por regla del modelo, los datos calculables no se almacenan.
2) No puedes pretender crear una FK contra un campo no clave. MySQL Admite sólo las PK (definición del modelo) y los UNIQUE, que fungen de claves candidatas. Y ese campo no cumple con ninguna.

Además, resulta bastante incorrecto usar un VARCHAR como campo donde almacenes el numero de factura. Incluso si se usaran códigos alfanuméricos para las facturas, ese diseño no es correcto.

En definitiva, es un modelo de datos defectuoso.
Estoy de acuerdo contigo, ya que, realmente, yo no quiero que el campo sea único. Sólo le he comentado la forma de solucionar su problema. Eso no quita que exista un problema de diseño de la BD. Toda BD referencial debe ir por PK y ese campo, obviamente, no lo es.

Saludos.