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

Relacionar Tablas

Estas en el tema de Relacionar Tablas en el foro de Mysql en Foros del Web. Hola que tal, buenas tardes alguien me podria ayudar con esto, alguien me podria explicar por que es que no puedo relacionar esto muchas gracias, ...
  #1 (permalink)  
Antiguo 03/06/2012, 15:12
 
Fecha de Ingreso: junio-2012
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Pregunta Relacionar Tablas

Hola que tal, buenas tardes alguien me podria ayudar con esto, alguien me podria explicar por que es que no puedo relacionar esto muchas gracias, Y ME PODRIAN DECIR COMO ES QUE LO PUEDO SOLUCIONAR, SE LO AGRADECERIA MUCHO,
ES QUE VOY APRENDIENDO ESTO DEL MYSQL GRACIAS
  #2 (permalink)  
Antiguo 03/06/2012, 17:17
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Relacionar Tablas

Creo que el error es bastante evidente: Estás intentado crear una FK en la segunda tabla que apunte a la primera. Pero el campo que estás indicando no existe en la segunda tabla.
¿Estás seguro de tener claro lo que es una FK?
Es un campo o conjunto de campos de una tabla cuyo valor se referencia a la PK de otra tabla.
PRODUCTO tiene cuatro campos, pero ninguno de ellos se llama "id_cliente".

Una disgresión que voy a hacer es esto: No existe ningún modelo en el que una tabla llamada "productos" se relacione en cardinalidad 1:N con otra denominada "clientes".
Un producto no es de un cliente. En todo caso un cliente adquiere el producto... Eso implica otro tipo de relaciones.

¿Estás seguro de estar modelando correctamente esa base?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/06/2012, 21:32
 
Fecha de Ingreso: junio-2012
Mensajes: 2
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Relacionar Tablas

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Creo que el error es bastante evidente: Estás intentado crear una FK en la segunda tabla que apunte a la primera. Pero el campo que estás indicando no existe en la segunda tabla.
¿Estás seguro de tener claro lo que es una FK?
Es un campo o conjunto de campos de una tabla cuyo valor se referencia a la PK de otra tabla.
PRODUCTO tiene cuatro campos, pero ninguno de ellos se llama "id_cliente".

Una disgresión que voy a hacer es esto: No existe ningún modelo en el que una tabla llamada "productos" se relacione en cardinalidad 1:N con otra denominada "clientes".
Un producto no es de un cliente. En todo caso un cliente adquiere el producto... Eso implica otro tipo de relaciones.

¿Estás seguro de estar modelando correctamente esa base?
Disculpa me podrias dar un ejemplo pa comprenderlo mejor, te lo agradeceria demasiado.
  #4 (permalink)  
Antiguo 04/06/2012, 08:25
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Relacionar Tablas

El caso más simple para explicarte la relación entre un cliente y un producto es una factura:
Un cliente compra un producto, el cual abona por medio de la factura.
La factura tiene:
- Un encabezado con los datos de la fecha, numero de factura, id del cliente, descuentos aplicados y un detalle de lo vendido.
- El detalle contiene id de factura, id del producto, y cantidad adquirida.
- Los datos del cliente se obtienen por medio del ID que está en el encabezado de la factura.
- Los datos de cada producto se obtienen por el ID del detalle.
Así pues, un cliente se relaciona con las facturas emitidas a él. Las facturas se relacionan a un detalle, y el detalle se relaciona con el producto vendido.
Si lo que deseo obtener es:
- La factura con sus total y detalle, relaciono todas las tablas de Cliente + Factura + Detalle_Factura + Producto.
- Las compras de un cliente: Cliente + Factura + Detalle_Factura + Producto, agrupando el total de compras por articulo.
- Los productos vendidos en un periodo: Factura + Detalle_Factura + Producto

En todos los casos, como puedes ver, para relacionar al producto con un cliente, lo hago con la factura, porque el cliente nunca se vincula directamente con el producto.
¿Cómo sé que un cliente compró algo? Porque se facturó.
¿Como sé qué tipos de producto consume n cliente? Porque se facturaron.
¿Cómo sé que tipo de clientes me consumo un determinado producto? Fijándome a quiénes se facturaron qué tipos de producto.

El que un cliente tome un producto de las góndolas de un supermercado para luego pagarlo y luego llevárselo, es total y absolutamente irrelevante para el sistema, porque el sistema no verifica las acciones humanas entre los objetos, sino los procesos y flujos de información del sistema... Donde el ser humano no existe.

¿Se entiende la distinción?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 04/06/2012 a las 08:47

Etiquetas: relacionar, sql, tablas
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 17:01.