最新公告
  • 新注册用户请前往个人中心绑定邮箱以便接收相关凭证邮件!!!点击前往个人中心
  • 从零到企业级SSM电商项目实战教程(九)数据表关系设计、索引与时间戳

    数据库表关系

     

     

    本项目共有八张表,天蓝色的表代表里面有索引的,例如user表的username是个唯一索引。

    接下来,按照下单流程介绍一下数据的流向,首先注册,注册之后信息会存到user表里面,登录会读取user表进行验证。

    然后搜索产品就用的了分类表,和产品表,我们会传关键字或者分类id。

    如果传的分类id是一个级别比较高的id,我们会对分类表进行递归查询,之后查出来符合这个分类和关键字的一个product集合。

    然后将这个产品添加进购物车的时候,就会从产品的id拿过来放到购物车表的product_id。

    用户登录的id放到user_id,然后购物车中提交订单就来到了订单确认页,订单确认页里面就要填一些收货地址。

    然后生成订单,生成订单之后就来到了order和order_item表,order会生成一个订单号,order_item表和product表是一个一对一的关系,order_item和order表是一个多对一的关系。

    然后开始对这个订单进行付款,接到支付宝的回调,将信息存到pay_info表里面,然后对回调的状态进行判断,如果支付成功会把order表的payment_time写入。

    可以看到我们这个表,外键是没有用的,为什么不用呢?

    因为在以后扩展分表的时候有外键会非常的麻烦,在进行清洗数据时也会很麻烦。

    唯一索引

    唯一索引unique,保证数据唯一性,例如user表中的username

    单索引及组合索引

    如图中user_id和order_no的组合索引,使我们查询更加快速

    时间戳

    查业务问题的后悔药,我们所有的表都有create_time:数据创建时间,update_time:数据更新时间,为什么说它是后悔药呢?

    有时候在查一些业务问题的时候,如果日志没有打,我们甚至不知道事情是什么时候发生的,如果我们数据库中连时间戳也没有,那更是无从下手了,一旦这个时候会非常后悔,当时如果打个日志就好了,我们就知道这个数据是什么时候变化的,至少在查业务问题的时候有一个时间范围。

    为什么用这两个字段呢?因为create_time 我们能知道数据创建时间,而update_time我们能知道数据更新时间,但是我们不可能保存每次更新时间,所有就保留最新一次更新时间。

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » 从零到企业级SSM电商项目实战教程(九)数据表关系设计、索引与时间戳

    常见问题FAQ

    如果资源链接失效了怎么办?
    本站用户分享的所有资源都有自动备份机制,如果资源链接失效,请联系本站客服QQ:2580505920更新资源地址。
    如果用户分享的资源与描述不符怎么办?
    可以联系客服QQ:2580505920,如果要求合理可以安排退款或者退赞助积分。
    如何分享个人资源获取赞助积分或其他奖励?
    本站用户可以分享自己的资源,但是必须保证资源没有侵权行为。点击个人中心,根据操作填写并上传即可。资源所获收益完全归属上传者,每周可申请提现一次。
    如果您发现了本资源有侵权行为怎么办?
    及时联系客服QQ:2580505920,核实予以删除。

    参与讨论

    • 155会员总数(位)
    • 3735资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 382稳定运行(天)

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多
    成为赞助用户享有更多特权立即升级