Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/03/2014, 14:18
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: Mostrar en tabla html un registro de una tabla mysql y varios de otra tabl

Toda relación N:M obligatoriamente crea una tabla relacional, tal que la tabla contenga por columnas al menos las PK de cada una de las tablas relacionadas, y ambas claves compongan la PK de esa tabla.
Sólo requieren columnas adicionales si puede haber más de una instancia de esa tabla para el mismo par de claves, y en ese caso esa/s columnas adicionales o al menos una d eellas debe ser un discriminante, y parte de la PK.

¿Conoces mas o menos en profundidad el modelo Entidad-Relación y su aplicación en las bases de datos relacionales?
Cita:
la relación de las tablas es idArticulo la PK autoincremental, y el códigoArticulo que es el que se relaciona con el codigoCaja.
La relación entre dos tablas se determina con la clave primaria (PK) de una de ellas en la otra tabla, como FK. Pero tu estás poniendo como PK de la tabla artículos dos campos al mismo tiempo, lo que implica que es una clave compuesta. O usas el Código, o usas el IdArticulo, pero no ambos a la vez.
En tu contexto, podría existir un mismo código de producto combinado con diferentes IDArticulo, porque el idArticulo nunca se repite, y el CodArticulo si.
Es decir, si la clave es (idArticulo, CodArticulo), un conjunto de inserciones tales como:
Código SQL:
Ver original
  1. (1, 34)
  2. (33, 34)
  3. (128, 34)
  4. (1429, 34)
es perfectamente válido, porque el primer campo no se repite.
¿Se entiende?
Además, siendo que una FK se define como un campo o conjunto de campos que referencia a la PK de otra tabla, la segunda tabla (cajas) está mal, porque no contiene el par relacional (violacion severa a la normalización de BBDD).
¿Se entiende?

todo esto te traerá problemas de consistencia de datos y de integridad referencial. Y de los grandes.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)