Node.js 购物车系统模式猫鼬

Node.js 购物车系统模式猫鼬,node.js,mongodb,database-design,mongoose-schema,Node.js,Mongodb,Database Design,Mongoose Schema,我正在创建一个p2p电子商务web应用程序,我在选择如何构建我的购物车系统时有点困难,你认为如果我将购物车系统嵌入到用户模型中会更好吗 const userSchema = new mongoose.Schema({ email: { type: String, required: true }, password: { type: String, required: true }, username: { type: String,

我正在创建一个p2p电子商务web应用程序,我在选择如何构建我的购物车系统时有点困难,你认为如果我将购物车系统嵌入到用户模型中会更好吗

const userSchema = new mongoose.Schema({
  email: {
    type: String,
    required: true
  },
  password: {
    type: String,
    required: true
  },
  username: {
    type: String,
    required: true
  }
  ,
  cart: [
    {
      product: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'product'
      },
     price:{
       type: Number,
       default: 0
     },
     quantity:{
       type: Number,
       default: 0
     },
     shippingPrice:{
       type: Number,
       default: 0
     }
    }
  ]
}

或者你认为我应该创建一个全新的模式并添加userId作为一个字段吗?…你认为哪一个更适合扩展?。。感谢您的帮助

老实说,如果我是您,我就不会使用服务器来存储购物车,只是不需要它


购物车可以存储在localStorage中,无需“浪费”数据库空间。也不需要为您要添加到购物车中的每一项发送请求,这将使您的网站更快,服务器更轻。

hmm。我将对此进行研究,但我也可以使用localStorage购物车中的数据使用Stripeb实现支付实例,但您的解决方案中还有一个缺陷,用户将只能在该特定设备上查看购物车,他将无法使用其他设备登录并查看他的购物车。。。。在我看来,这是一种糟糕的销售技巧,它取决于你希望在网站中拥有的功能。如果您希望某人能够切换计算机并保存其购物车,那么是的,您需要将其保存在数据库中。