Cita: Para hacer un carrito, ¿voy guardando los datos de la compra en la sesion del usuario y luego a la BD, o directamente an la BD?.
Normalmente si trabajas con sesiones .. almacenarías todo en la sesión hasta que el usuario finalice su compra/pedido .. momento en el que lo guardarías en tu BD. Si lo vas guardando en tu BD a medida que se ingresan artículos al carrito .. si el usuario aborta la compra te quedarían esos registros incompletos que posteriormene deberías hacer rutinas para borrar esos procesos incompletos: ya sea con la detección del "aborto" del script en curso o bien (mejor creo yo) ejecutar taréas programadas bajo un cron-job (unix) que borren esos registros que no se completaron (te haría falta un campo tipo "flag" para ponerlo a "1" cuando finalice el proceso .. o bien andar moviendo datos desde tablas "temporales" si termina el proceso ..
La BD sería útil para permitir a tu usuario (previo registro antes de comprar y autentificación para realizar compras) que continuara una compra en cualquier momento y la finalice cuando deses.
Un saludo,