Foros del Web » Programando para Internet » PHP »

Duda en logica sobre carrito compras

Estas en el tema de Duda en logica sobre carrito compras en el foro de PHP en Foros del Web. Es optimo tener una tabla en MYSQL y dentro de ella un ID el cual refiere a un producto , ej: Código PHP: -- ID                          ...
  #1 (permalink)  
Antiguo 31/07/2006, 11:34
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 11 años, 10 meses
Puntos: 3
Duda en logica sobre carrito compras

Es optimo tener una tabla en MYSQL y dentro de ella un ID el cual refiere a un producto , ej:
Código PHP:
--ID                         --Paquete
121                  Viaje a Monterrey 
Y ya en el front-end ... hacer un query dandole el ID para q me ponga el nombre del paquete , q seria "viaje a monterrey", por ej:
Código PHP:
//Consulta SQL q devolveria el nombre del paquete//
<a href="#" > <? $row[paquete]; ?> </a>
Es optimo hacer eso?

Otra pequeña duda:
En los carritos de compras, a la hora de q el usuario le da click a "agregar producto", q es mas optimo? ir guardando en una session los datos del producto?.. o irlo insertando en una tabla?... por q por ahi vi un script de PHP CLASSES... q creo entender q hacian eso :S .. ya q es POO y no me he metido mucho en eso..
Gracias de antemano
! Saludos !
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #2 (permalink)  
Antiguo 31/07/2006, 12:05
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
Hola, he de decir que desde luego yo no me considero ningún gurú de la programación web, pero solo te comento tus preguntas según lo que he visto en entornos profesionales, espero que te sirva de ayuda.

En cuanto a tu primera pregunta sobre el uso de ids no veo ningun problema. De hecho los id´s autoincrementales se usan muy frecuentemente. Te serán de gran ayuda y te evitarán muchos problemas. Por ejemplo, no se si será tu caso pero... un producto quedaría identificado totalmente por el nombre?? En muchas ocasiones no, puede haber varios "viajes a monterrey" de diferentes características y en este caso tendrías que diferenciarlos con alguna o varias de ellas... al final tienes un problemon, porque cuando quieras mostrar informacíon de uno de ellos que harías?? select * from productos where nombre='nombre' and caracteristica1=''.....etc. Igual para borrados o modificaciones.... un lio que no veas.
Yo empecé un proyecto personal hace unos años y pecando de inexperto no usé índices autoincrementales como claves primarias de las tablas y al final... desastre completo y vuelta a empezar.

Para tu segunda pregunta te recomiendo el uso de sessiones. Yo nunca he visto que se haga sobre base de datos, desde luego es posible, pero independientemente de que estemos trabajando con objetos o no te planteo (por ejemplo) uno de los problemas que te surgiran si lo hicierás con base de datos:
Un usuario añade varios productos a su carro de la compra y tu vas añadiendo esa información a la base de datos, pero el usuario se arrepiente y decide cerrar su navegador. Te ha dejado basura en la base de datos y ahora se te plantea el problema de que hacer... mantener ahí la basura? Entonces si el mismo usuario vuelve a entrar tendrás que diferenciar los productos que vaya añadiendo a su carro de los que ya tenia (basura). En fin, otro lio.

No se, supongo que habrá gente que lo haya hecho en base de datos, no se, hay gente pa tó. Yo no te lo recomiendo... pero ya te digo, que no soy ningun experto.

Espero haberte ayudado. Un saludo!!!
  #3 (permalink)  
Antiguo 31/07/2006, 12:06
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
Hola, he de decir que desde luego yo no me considero ningún gurú de la programación web, pero solo te comento tus preguntas según lo que he visto en entornos profesionales, espero que te sirva de ayuda.

En cuanto a tu primera pregunta sobre el uso de ids no veo ningun problema. De hecho los id´s autoincrementales se usan muy frecuentemente. Te serán de gran ayuda y te evitarán muchos problemas. Por ejemplo, no se si será tu caso pero... un producto quedaría identificado totalmente por el nombre?? En muchas ocasiones no, puede haber varios "viajes a monterrey" de diferentes características y en este caso tendrías que diferenciarlos con alguna o varias de ellas... al final tienes un problemon, porque cuando quieras mostrar informacíon de uno de ellos que harías?? select * from productos where nombre='nombre' and caracteristica1=''.....etc. Igual para borrados o modificaciones.... un lio que no veas.
Yo empecé un proyecto personal hace unos años y pecando de inexperto no usé índices autoincrementales como claves primarias de las tablas y al final... desastre completo y vuelta a empezar.

Para tu segunda pregunta te recomiendo el uso de sessiones. Yo nunca he visto que se haga sobre base de datos, desde luego es posible, pero independientemente de que estemos trabajando con objetos o no te planteo (por ejemplo) uno de los problemas que te surgiran si lo hicierás con base de datos:
Un usuario añade varios productos a su carro de la compra y tu vas añadiendo esa información a la base de datos, pero el usuario se arrepiente y decide cerrar su navegador. Te ha dejado basura en la base de datos y ahora se te plantea el problema de que hacer... mantener ahí la basura? Entonces si el mismo usuario vuelve a entrar tendrás que diferenciar los productos que vaya añadiendo a su carro de los que ya tenia (basura). En fin, otro lio.

No se, supongo que habrá gente que lo haya hecho en base de datos, no se, hay gente pa tó. Yo no te lo recomiendo... pero ya te digo, que no soy ningun experto.

Espero haberte ayudado. Un saludo!!!
  #4 (permalink)  
Antiguo 31/07/2006, 12:10
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
no es que quiera ser pesao y decir las cosas dos veces. Es que hablando de sesiones en este foro podrían aumentar el tiempo de session un poquito porque siempre me caduca y no me da tiempo de escribir!!!!! luego me pide el usuario y password y al final no se si me ha insertado el mensaje o no... lo vuelo a poner y ahora aparece dos veces...

me lio
  #5 (permalink)  
Antiguo 31/07/2006, 12:13
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 11 años, 10 meses
Puntos: 3
No pues a la hora de q el usuario quisiera borrar... se haria una sentencia SQL para quitar de la tabla.. pero creo q el problema vendria cuando muchos usuarios entraran al sitio, se crearian muchas tablas temporales...
Creo q si es mejor por sessiones..
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
  #6 (permalink)  
Antiguo 31/07/2006, 12:29
 
Fecha de Ingreso: diciembre-2003
Mensajes: 213
Antigüedad: 14 años
Puntos: 0
Si si. Si el usuario quiere borrar explicitamente no hay problema. Me refiero a que el usuario pase de todo y cierre el navegador y te deje su "carro" lleno.

No me imaginaba que te referías a crear una tabla temporal para cada usuario, pensaba que la idea hubiera sido poner una única tabla asociando idusuario-idproducto.

Con lo de las tablas temporales no te puedo ayudar, porque no tengo muy claro cuanto perviven. Pero no se... no me da muy buenas sensaciones.
  #7 (permalink)  
Antiguo 31/07/2006, 17:59
Avatar de B**
B**
 
Fecha de Ingreso: enero-2006
Ubicación: Monterrey,Mexico
Mensajes: 952
Antigüedad: 11 años, 10 meses
Puntos: 3
Pues si, podria ser como dices con el puro id, sin crear tablas temporales.... es mas optimo,creo yo...
De igual manera creo q es mejor por sessiones
Pero se siguen aceptando sugerencias :D
__________________
-URL= Go PHP5.
-Age=22.
-Learning=PHP,J2EE,Struts,MAMBO,C++,JSON,AJAX,XHTML ,CSS.
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 19:24.