Home  >  Article  >  Backend Development  >  购物车,用户,商品表这3这之间的关系

购物车,用户,商品表这3这之间的关系

WBOY
WBOYOriginal
2016-06-06 20:41:116150browse

以我自身的理解,

购物车 => 用户,1 -> 1
用户 => 商品信息, n -> n

那么:

购物车 => 商品就是 n -> n了

不知道我这样理解对吗?

将这三者关联起来,数据库该咋设计呢?

我目前想到的方法就是,新建5个表:

  1. 用户表
  2. 商品表
  3. 购物车表
  4. 用户商品关系表
  5. 购物车商品关系表

主要字段就是:

  1. 用户表:id,uname,pwd等等
  2. 商品表:id,goodname,price等
  3. 购物车表:id,uid,uid为对应用户id
  4. 购物车商品关系表:gid,cid分别为商品id,购物车id
  5. 用户商品关系表:uid,gid分别为用户id和商品id

请问各位我这样设计行吗?高效吗?有冗余吗?

求推荐高效的数据库设计。。。非常感谢!

回复内容:

以我自身的理解,

购物车 => 用户,1 -> 1
用户 => 商品信息, n -> n

那么:

购物车 => 商品就是 n -> n了

不知道我这样理解对吗?

将这三者关联起来,数据库该咋设计呢?

我目前想到的方法就是,新建5个表:

  1. 用户表
  2. 商品表
  3. 购物车表
  4. 用户商品关系表
  5. 购物车商品关系表

主要字段就是:

  1. 用户表:id,uname,pwd等等
  2. 商品表:id,goodname,price等
  3. 购物车表:id,uid,uid为对应用户id
  4. 购物车商品关系表:gid,cid分别为商品id,购物车id
  5. 用户商品关系表:uid,gid分别为用户id和商品id

请问各位我这样设计行吗?高效吗?有冗余吗?

求推荐高效的数据库设计。。。非常感谢!

首先购物车这个概念你可以直接化为订单,这样就比较好理解了。某个用户下了一个订单,订单内包含许多商品。简单一句话各个的对应关系就不言而喻了。
所以新建4张表,前3张分别对应用户信息,订单信息,商品信息,第4张表将订单ID和商品ID对应起来。如果通过用户查询商品比较频繁的话也可以再加1张表,对应用户ID和商品ID。

唔..好吧..写完了才发现和你的思路是一样的,算是证明你这样设计是没问题的吧。

1.用户表
2.产品表
3.购物车表(用户id,商品id,被加入购物车时的价格以及SKU信息)
4.订单表(用户ID,订单ID,子订单ID,订单摘要)
5.订单详情表(订单ID,子订单ID,订单生成时的商品信息)

个人觉得用户商品关系表没有必要,购物车商品关系表gidcid共同组成primary key,以满足n->m的要求。关于效率和规范问题,这个应该达到范式要求了,够用了吧。个人愚见,如有问题,欢迎讨论。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn