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

Ayuda MySQL

Estas en el tema de Ayuda MySQL en el foro de Mysql en Foros del Web. Hola a todos, necesito ayuda con mysql, tengo una tabla pedidos con los siguientes atributos (id_pedido, id_cliente, id_usuario, fec_pedido, fec_entrega) y la tabla detalle_pedidos( id_pedido, ...
  #1 (permalink)  
Antiguo 25/07/2010, 12:22
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años
Puntos: 0
Ayuda MySQL

Hola a todos, necesito ayuda con mysql, tengo una tabla pedidos con los siguientes atributos (id_pedido, id_cliente, id_usuario, fec_pedido, fec_entrega) y la tabla detalle_pedidos( id_pedido, id_producto, precio_unidad, cantidad) el problema se me presenta cuando ingreso los detalles del pedido, ya que la id_pedido se encuentra como clave principal, por lo tanto no puedo ingresar mas productos con ese ID.

Alguien me podria orientar en que parte me estoy equivocando o cual seria el camino a seguir.

gracias
  #2 (permalink)  
Antiguo 25/07/2010, 12:50
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, 5 meses
Puntos: 2658
Respuesta: Ayuda MySQL

En que Detalle_pedido debería tener una clave primaria definida sobre dos campos: la PK de la tabla pedidos (id_pedido) y un campo que se incremente de 1 en 1, en cada repetición de la primera. Ese campo lo puedes llamar "subitem_pedido", por ejemplo.
De ese modo en la tabla existiría:
Cita:
id_pedido | subitem_pedido | ...
1 |1 |...
1 |2 |...
1 |3 |...
1 |4 |...
1 |5 |...
2 |1 |...
2 |2 |...
3 |1 |...
3 |2 |...
3 |3 |...
¿Se entiende?

El cómo incrementes ese subitem_pedido es asunto o de la aplicación o de la base, pero en cualquier caso no puede ser un autoincremental.
__________________
¿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 25/07/2010, 14:41
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda MySQL

Estimado, antes que todo gracias por la pronta respuesta.

Bueno modifique la tabla con el formato indicado, pero mi duda como ajustarse al ejemplo si el campo id_pedido es una PK, por lo tanto no permitira el ingreso de valores duplicados.

Por favor podrias ser mas practico, soy novato en tema.

Lo del subitem tendre que hacerlo con PHP, una vez solucione lo del id_pedido.

Gracias por el apoyo.
  #4 (permalink)  
Antiguo 25/07/2010, 15:59
 
Fecha de Ingreso: mayo-2010
Mensajes: 16
Antigüedad: 14 años
Puntos: 0
Respuesta: Ayuda MySQL

Amigo estuve haciendo algunas pruebas y al fin me resulto.

CREATE TABLE `detalle_pedidos` (
`id_pedido` int(10) NOT NULL COMMENT 'Clave compuesta id_pedido/subitem_pedido',
`subitem_pedido` int(10) NOT NULL COMMENT 'Clave compuesta id_pedido / subitem_pedido',
`id_producto` int(10) NOT NULL,
`precio_unidad` int(10) NOT NULL,
`cantidad` int(10) NOT NULL,
PRIMARY KEY (`id_pedido`,`subitem_pedido`),
KEY `id_producto` (`id_producto`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Volcar la base de datos para la tabla `detalle_pedidos`
--

INSERT INTO `detalle_pedidos` VALUES (2, 1, 2001290, 6565, 7);
INSERT INTO `detalle_pedidos` VALUES (2, 2, 2000100, 5454, 6);
INSERT INTO `detalle_pedidos` VALUES (3, 1, 2001290, 767, 6);
INSERT INTO `detalle_pedidos` VALUES (3, 2, 2000100, 7676, 5);
INSERT INTO `detalle_pedidos` VALUES (3, 3, 20001211, 656, 5);


Te agradezco tu apoyo me tenia enfermo esta tabla.

Gracias
  #5 (permalink)  
Antiguo 25/07/2010, 16:21
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, 5 meses
Puntos: 2658
Respuesta: Ayuda MySQL

No hay problema.
Conserva este asunto en la memoria porque este esquema se repite siempre que haya una relación 1:N entre dos tablas de esta clase, como sería el caso de Presupuestos, Facturas, Pedidos, Ordenes de trabajo, etc. Es decir siempre que haya un detalle de items relacionados con un documento.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: Ninguno
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:44.