基于业务设计数据表的总结

clipboard.png

前言

这是一篇平常开发中根据产品需求去设计数据表的总结。程序员

抛去测试、架构来讲,数据表设计是指定功能开发的一个起点,若是出现失误将会对将来开发以及运行都会有很大的影响。接下来咱们聊聊应该如何根据需求去设计数据表。sql

原型图

首先产品递交的绝笔是份原型图或者需求文档,这里先看原型图,根据原型图上的任意label、input汇总,再根据逻辑不一样去划分为不一样的块(也就意味着不一样的表)。以电商优惠卷为例,原型图多是这样的(原谅我不会画这图,就拿京东的一张图代替吧)。架构

clipboard.png

当你看到这张原型后,首先你得确认这是个什么功能是吧。瞅了一眼是优惠券的功能,首先确立有了第一张表和表名性能

  • coupons

再者优惠券是给予用户使用的,因此又有了测试

  • user_coupons

一个是优惠券存库表,一个是发送优惠券的用户表,至此表名想好了。接下来就是字段了。spa

分离

根据上述原型图咱们能够将字段所属逻辑区域分红如下这样设计

clipboard.png

将以原型图为基准的逻辑分为两大块,一块是显示相关的字段,另外一块则是控制相关的字段(如添加时间,过时时间,状态等)。3d

任意一家公司都想要有相关行业经验的开发者,并非由于技术有多高深,而是能够根据给出的具备局限性的原型图去扩展字段。考虑将来业务发展所须要的,这实际也是架构的一部分。blog

扩展

大概的以张图来讲明所说的扩展字段。
clipboard.png索引

经过以本身的平常生活经验和开发经验对具备局限性的原型图进行扩展。是一个业务程序员最起码的技能。
在以后,将要面临一些性能的考虑了。

性能

本章并不会详细将数据表的设计上,就大概的根据优惠券的功能讲解下思路。

  • 批量发放应该考虑的技术问题
  • 考虑频繁被查询的字段设置索引,例如优惠券功能?标题等...
  • 有效期使用datetime设置,时间戳对于sql查询的局限太大。

一张原型图迁出的考虑因素不少。也是一名程序员的基础。

致谢

感谢你看到这里,但愿本篇文章能够帮助到你,谢谢。

相关文章
相关标签/搜索