我正在为我的项目使用php laravel 5.2。我想用数据库表设计购物车(表名是购物车)。 cart表具有列名session_id,用于确定每个用户的购物车。
问题是:或任何其他购物车设计与数据库的想法?
答案 0 :(得分:6)
确实没有理由使用会话ID作为购物车所有者的标识符。处理购物车的逻辑非常简单,它等同于以下内容:
cart
表格)中才有意义。在这种情况下,将购物车项目链接到用户的标识符是user_id
,因为用户只能拥有一个购物车。所以cart
表可以简单如下:+---------+------------+
| user_id | product_id |
+---------+------------+
user_id
和product_id
实际上只是处理购物车项目的所有内容,因为它只是一个列表,引用了一个用户,其详细信息存储在{ {1}}表和详细信息存储在users
表中的产品。当然,当访客用户将一些商品添加到购物车(此时存储在会话中)时,如果该访客决定在会话购物车中放入商品时登录,则添加可能是有意义的(更多在登录过程成功后,将这些项与数据库完全同步。
因此,如果用户在他/她登录时已经在数据库购物车中已经有一些产品,那么当前会话购物车中的新产品将被添加到旧产品中。虽然您可以选择同步项目,或者只是完全覆盖它们以保留新的购物车项目。
因此,遵循上述指南,无需从数据库中删除购物车商品,因为数据库中只有购物车商品链接到注册用户,这些商品需要在下次用户登录时保持可用状态英寸
答案 1 :(得分:0)
你可以依赖Cookies:
https://laravel.com/docs/5.2/requests#cookies
甚至更好的购物车包装为laravel:
https://github.com/Crinsane/LaravelShoppingcart
我在Laravel 5电子商务实施中使用的这个包。