我在我的项目中使用php laravel 5.2。我想设计带有数据库表的购物车(表名是购物车)。cart表有列名session_id来确定每个用户的购物车。
问题是:
或者其他有数据库的购物车设计的想法?
发布于 2016-03-26 12:04:56
没有理由使用会话ID作为购物车所有者的标识符。处理购物车的逻辑非常简单,它等同于以下内容:
cart登录了的注册用户时,才有必要将购物车信息存储在数据库(您的表)中。在这种情况下,将购物车项链接到用户的标识符是user_id,因为用户只能有一个购物车。因此,cart表可以非常简单,如:+---------+------------+
| user_id | product_id |
+---------+------------+user_id和product_id实际上就是处理购物车项目所需要的全部,因为它只是一个列表,它引用了users表中存储详细信息的用户,以及将详细信息存储在products表中的产品。当然,当来宾用户将一些项添加到购物车(此时存储在会话中)时,如果该来宾决定在会话购物车中拥有内容时登录,那么在登录过程成功后添加(更准确地说是同步)这些项与数据库可能是有意义的。
因此,如果用户在上次登录时数据库购物车中已经有了一些产品,那么来自当前会话购物车的新产品将被添加到旧产品中。虽然这是您的选择,如果您想同步这些项目,或者只是完全覆盖它们,只保留新的购物车项目。
因此,按照上述指导原则,无需从数据库中删除cart项,因为数据库中只有与注册用户链接的cart项,这些用户下次登录时需要留在那里才能使用。
发布于 2016-03-26 16:31:44
你可以依靠饼干:
https://laravel.com/docs/5.2/requests#cookies
或者更好的一个购物车包是为拉拉做的:
https://github.com/Crinsane/LaravelShoppingcart
这个包是我在Laravel 5电子商务实现中使用的。
https://stackoverflow.com/questions/36234548
复制相似问题