在哪里存储用户的购物车,我应该存储在会话或DB

问题描述:

我要存储用户的购物车 所以每当用户在购物车中添加一些产品,然后从网站注销后再当时在网站上登录,从而使他应该能够访问他的购物车在哪里存储用户的购物车,我应该存储在会话或DB

一种方式是通过会议,但与车的问题会得到空当用户注销

我想在数据库中存储,以便创建2个表

第一张表是UserTable有3个colu MNS(用户ID,产品编号,产品数量) 和第二表的productTable有3列(产品编号,产品名称,价格)

但这种方式对于每一个条目都会有一个新的行中第一个表,并检索特定用户的购物车中的所有条目需要检查那么这将使得过程缓慢

+0

数据库设计做你描述_incredibly_快速什么。此外,你应该澄清:你的问题是什么? –

+0

如果有5万用户,并且每个用户在购物车中有5-6个物品,那么它将在表格中生成250K行,然后我必须根据用户ID从该表中搜索。所以我应该以这种方式实施吗? –

+0

'从CartTable中选择ProductId,ProductQuantity,其中UserId =“143”;'是。确保该表在UserId上编有索引 –

使用数据库的优先停留方法来处理这种类型的信息。如果您使用会话,那么您应该在用户注销时清除会话,以便在重新登录时数据为空。

理论上,您可以在用户登录到使数据检索更快,然后在注销时提取会话信息。但是,这种方法的缺点是,如果您有2个用户和1个可用的用户1添加到他们的购物车的项目? User2不知道User1的会话,并且该项目应该对User2不可用,因为它位于其购物车中。

你必须考虑边缘情况下,在您形成任何方案。

至于数据库模式,我建议有3个表。

  • 用户(USER_ID,名)
  • 产品(产品,价格,可用的)
  • 车(USER_ID,PRODUCT_ID,数量)