【发布时间】:2020-05-16 19:09:05
【问题描述】:
我正在开发一个在线商店网站。 我需要做一个购物车。
我很困惑,为了制作购物车,我必须在我的数据库中制作一个购物车表(有 customer_id,product_id,qty,price).. 然后当客户结帐时,我必须制作另一个表(订单)来存储签出的订单?? 那么我必须做两张桌子,一张用来存放购物车,一张用来存放结账时的订单?
在数据库中存储签出顺序是合乎逻辑的(因为它不需要太多更新..)
但是.. 将购物车存储在数据库中是否有效?想象一下,每当客户将商品添加到购物车时,我必须使用 INSERT 查询,然后当客户增加或减少数量时,我必须使用 UPDATE 查询,然后当客户删除购物车时,DELETE 查询...... 知道客户通常会多次添加到购物车,然后在不结账的情况下删除.. 可能改变了主意?
什么是合乎逻辑的解决方案??
感谢您的帮助
【问题讨论】:
-
购物车不就是一个没有“结账”的订单吗?如果我去网上购物,装满购物车然后结帐,那么在我下次访问时,我希望我的购物车是空的,所以我认为购物车和订单是同一回事(所以,同一张桌子) - 但我不知道标准的购物车应用程序是不是这样!
-
这正是我想知道的!购物车和订单是一样的吗?或者我们必须做两张桌子?您的意思是我们将结帐作为表格中的一列? @草莓
-
事情是;订单完成后将等于购物车 - 订单不经常更新。这两个是不同的概念 - 在某些时候可能彼此相等。大部分时间订单为空,而购物车已更新。
-
你能澄清更多吗? @Ersoy 没有得到你的答案
-
购物车和订单是不同的概念。订单开始时为空,付款时订单存在。直到付款没有订单。付款完成后就没有购物车了。 “购物车”将被频繁访问、插入、更新,而“订单”将较少访问,一旦插入,“可能”会更新(返回等)。最好将它们保留为单独的概念。付款后它们可能彼此相等 - 在截断购物车之前。