一对一对多关系与购物车、订单设计


一对一对多关系与购物车、订单设计_第1张图片

一对一对多关系

常见的解决情况是这样的,设计2个表

一个叫什么信息表,用于存储一对一关系

一个叫什么信息明细表,用于存储一对多关系



同时,当一个实体既有单值属性,又有多值属性时,也设计为两个表

一对一对多关系与购物车、订单设计_第2张图片 

例如用户有单值属性密码,又有多值属性电话号码等,也设计为2个表

如下文,一个叫用户信息表:记录用户信息

一个叫用户信息明细表:记录用户的详细信息,其主键来自于用户信息表中


php - 购物车,用户,商品表这3这之间的关系 - SegmentFault
https://segmentfault.com/q/1010000001875247

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

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

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

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

主要字段就是:

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

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

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

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

ps:有人说,购物车就是订单的未提交的状态,所以根本没必要设置购物车

购物车需求分析_图文_百度文库
http://wenku.baidu.com/link?url=SNC6gtZG1KkQ7AWfiMhUazPZ4nqRMgE5TEu76_7gexU5NyUHjX8wqCn9QzBhVk6xcLBWihcVwns_iaHrgMZrReKG50vKQ5yJz-6hv3JGNty


数据库表的说明

   

类型表: 主要记录商品的分类信息


  

商品信息表:记录商品的相关信息,与类型表有主外键关系

  一对一对多关系与购物车、订单设计_第3张图片

 

 

用户信息表:记录用户信息

一对一对多关系与购物车、订单设计_第4张图片

用户信息明细表:记录用户的详细信息其主键来自于用户信息表中

一对一对多关系与购物车、订单设计_第5张图片

订单表:主要记录的是订单信息

一对一对多关系与购物车、订单设计_第6张图片

订单明细表:记录当前订单的详细信息

  一对一对多关系与购物车、订单设计_第7张图片


 


你可能感兴趣的:(一对一对多关系与购物车、订单设计)