aierong [trabajo original]
Es la primera vez que creo un carrito de compras para un sitio BToC. Resumí el método de almacenamiento de datos en el carrito de compras.
Método 1: usar sesión.
Se puede almacenar cualquier tipo de datos en la sesión. Cada usuario tiene una ID de sesión única. Esta ID se utiliza para distinguir los datos de la sesión del carrito de compras de diferentes usuarios. Los datos de la sesión se almacenan en la memoria del servidor WEB. Muchos usuarios usan el carrito de compras, entonces Primero, ocupará una gran cantidad de recursos del servidor. La sesión tiene un pequeño defecto. Depende de la COOKIE para comunicarse con el usuario. Una vez que el usuario cierra la COOKIE, la sesión será más utilizada. problemático
Por supuesto, en ASP. Hay otras dos formas de guardar datos de sesión en NET. Una es designar otro servidor para almacenar los datos de sesión, que puede compartir efectivamente la sobrecarga operativa del servidor WEB.
La otra es almacenar los datos de la sesión en MS SQL. MS SQL se implementa utilizando tablas temporales locales. Los datos de la sesión se colocan en las tablas temporales locales. MS SQL también asigna una ID única a cada tabla temporal local
. este ID para distinguir diferentes datos de sesión de diferentes usuarios. Sin embargo, no recomiendo este método. La creación y eliminación frecuentes de tablas temporales en la base de datos causará demasiada sobrecarga a la base de datos.
Método 2: usar una tabla (ShoppingCart) en la base de datos.
Mi método de implementación favorito es
que la tabla tenga varios campos básicos.
CartId ID del carrito de compras (único)
ID ID del producto (único)
La cantidad de bienes comprados por los usuarios de Qty.
CreateDate Hora de creación del carrito de compras
El campo CartId de esta tabla es el ID del carrito de compras que distingue a los diferentes usuarios. Si el usuario ha iniciado sesión, puede almacenar el ID del nombre de inicio de sesión del usuario que inició sesión en la tabla. El usuario no ha iniciado sesión y usa el carrito de compras,
puede asignar un GUID (Identificador único global) como ID del carrito de compras.
Este método también tiene algunos defectos. En primer lugar, provocará una gran cantidad de datos no válidos. Como todos sabemos, es posible que las personas que utilizan el carrito de compras eventualmente no paguen ni compren los productos. Pero para usar el carrito de compras
, debe insertar datos relevantes en la tabla (ShoppingCart). Tan pronto como un usuario que no ha iniciado sesión abandona el sitio, sus datos en la tabla se convierten en un montón de datos de desperdicio, porque cuando inicia sesión. la próxima vez, le asignaremos
un nuevo ID de carrito de compras CartId. Si hay datos de desperdicio, tenemos que mantener esta tabla de vez en cuando. Podemos escribir un proceso para borrar los datos de desperdicio (usando los campos CreateDate y CartId para determinar). datos no válidos). También puede llamarlo manualmente si desea hacerlo. Si se ejecuta MS SQL en nuestro nombre, se puede configurar un TRABAJO y el TRABAJO llamará automáticamente al proceso para borrar los datos desperdiciados.
Hablando de las desventajas de tirar, deberíamos hablar de las ventajas de este método.
1. Ocupa menos recursos del sistema. Podemos colocar la base de datos en una computadora y el servidor WEB en otra computadora, para que los recursos del sistema se puedan utilizar por completo.
2. Los datos en el carrito de compras se pueden conservar de manera efectiva. Podemos imaginar que un cliente abandona repentinamente la estación de compras por algún otro motivo (caída, etc.) mientras compra. Sus datos en el carrito de compras se
conservan
de manera efectiva la próxima vez que inicie sesión. En ese momento, el carrito de compras se guardaráy también se conservarán los datos de la última vez para evitar que los usuarios vuelvan a comprar productos (esta función solo es válida para los carritos de compras de los usuarios que han iniciado sesión si se utiliza una sesión para implementar
el carrito de compras
).Una vez que todos los usuarios abandonan el sitio, todos los datos en sus carritos de compras se perderán. La falla
es fácil. Los acabo de resumir porque acabo de entrar en contacto con ASP. NET, no sé mucho sobre muchos aspectos. Puede haber otras formas de implementar un carrito de compras. Espero que puedan darme algún consejo.