商品交易数据库建模

目前在学习SSM框架,学到Mybaits的时候,对于数据库进行建模是必要的,虽然不是用的强大的PowerDesign工具,面向mysql的时候,觉得workbench页面太low,虽然是官方推荐的工具,但是Navicat就可以帮我解决啦!Mybaits对象模型一对一、一对多以及多对多,暂且就用商品交易这个简单案例作为example吧。

商品交易模型

这里写图片描述

为了不太复杂,暂且建四张表:

  1. user : 用户表
  2. items:商品表
    createtime—生产日期
  3. orders:订单表
    num—订单编号
  4. orderdetail:订单明细表
    item-num—-商品数量

这些表的属性就顾名思义吧,此处就不作更多解释了
分析
  为什么需要建一个orderdetial表呢?试想,如果没有此表,那么orders表中还需要添加属性item_iditem_num,于是会想,一个订单只能买一种类型的商品吗,平时我们上淘宝、京东恐怕买多种商品的的时候也不在少数吧,那再在orders表里面添加一个栏位item_id_1item_num_1? 这种做法肯定是不可取的,这样会产生两个问题:

  • 一次可购买商品种类受限
  • 数据表冗余大

因此,我们需要额外添加一个订单详情表orderdetial,这样,orders—->orderdetial形成一对多的关系,orderdetial表中把order_id作为外键,便解决了这个问题。
  还有很多例子也是一样的原理,例如学生选课:

  1. Student表: 学生信息,id主键
  2. Course表:课程信息,id主键
  3. SelectCourse表:选课信息,id主键,stu_id外键,cour_id外键

假如小明id为1,这样的话在SelectCourse表中可以有多条stu_id=1但是cour_id不同的记录,从而实现一人可以选多门课程。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值