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

dudas de la estructura de la base de datos del carrito de compra

Estas en el tema de dudas de la estructura de la base de datos del carrito de compra en el foro de Bases de Datos General en Foros del Web. Hola, estoy preparando un carrito de compra y me surge alguna duda de base de datos, comento. El carrito funciona correctamente, lo he realizado por ...
  #1 (permalink)  
Antiguo 03/02/2009, 02:16
 
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 0
dudas de la estructura de la base de datos del carrito de compra

Hola,

estoy preparando un carrito de compra y me surge alguna duda de base de datos, comento.

El carrito funciona correctamente, lo he realizado por variables de sesion la duda es a la hora de confirmar la compra y registrar el pedido.

He pensado que las tablas que deben de haber para registrar los pedidos son dos:

linea_compra
id_compra | id_usuario | id_articulo | coste | fecha

pedidos
id_pedido | id_compra | id_usuario | modo_pago | moneda | total | devolucion | id_promocion | fecha

Donde para cada articulo de esa variable de sesion se registrara una linea_compra, todos los articulos de la misma compra tendrán el mismo id_compra para poder asociar el mismo pedido, una vez finalizadas todas las lineas de compra se dara de alta el nuevo pedido.

Mis dudas al respecto son:

¿Esta es la mejor manera de realizarlo?

Cuando voy a hacer una compra el proceso es:
1.Coger el ultimo id de linea_compra
2.Registrar compras con el id siguiente

Entre el paso 1 y 2 puede que otro usuario leyera el mismo id_compra
antes de registrar la compra?

No se si me explico... Muchas gracias por vuestro tiempo, espero que sepan ayudarme, que estoy seguro que de si.

Última edición por raulbotella83; 03/02/2009 a las 02:21
  #2 (permalink)  
Antiguo 03/02/2009, 04:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: dudas de la estructura de la base de datos del carrito de compra

pedidos
id_pedido | id_compra...

No veo claro esos dos id con uno es suficiente... es decir


pedidos

id_pedido| id_usuario | modo_pago | moneda | total | devolucion | id_promocion | fecha

linea_compra
id_linea| id_pedido | id_articulo | coste | cantidad


luego primero creas el pedido y le agregas lineas.... no se en que motor trabajas pero hay formas de saber que id a generado un INSERT INTO, luego si tienes el id del pedido los id de linea no tiene mucha importancia si se mezclan con los de otro usuario...

Quim
  #3 (permalink)  
Antiguo 03/02/2009, 05:34
 
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: dudas de la estructura de la base de datos del carrito de compra

Entonces segun comentas antes de registrar lineas de compra daria de alta un nuevo pedido quedandome con el id del pedido para poder ir añadiendolo a las lineas de compra no?

En este caso que haria un primer insert en "pedidos" con el total y posteriormente rellenaria las lineas de compra, entendi bien?

Utilizo php+mysql...

Gracias por la respuesta quimfv
  #4 (permalink)  
Antiguo 03/02/2009, 08:14
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: dudas de la estructura de la base de datos del carrito de compra

Si creo que es mas logico crear primero la cabecera del pedido y luego sus lineas, segun como lo hagas quizas al final tendràs que hacer un update con el total al registro de cabecera, otra cosa que te puede ayudar es guardar en un campo del registro del pedido el numero de lineas que lo componen, no es estrictamente necesario puesto que esta información simpre puedes obtenerla consultando la tabla de lineas, pero como siempre serà mas rapido consultar la de pedidos...Vigila que no se pueda producir una incoherencia entre ese numero y el numero real de lineas...en realidad es lo mismo que el total tambien lo puedes obtner sumando lineas....y tambien hay que vigilar las posibles incoherencias...


En mysql tienes una instrución que si la lanzas despues de un INSERT te dará el id creado por el ultimo insert de la misama session con lo que te aseguras evitar interferencias de otros usuarios....


mysql_insert_id


Quim
  #5 (permalink)  
Antiguo 03/02/2009, 08:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: dudas de la estructura de la base de datos del carrito de compra

Gracias, duda resuelta.
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:08.