美文网首页程序员技术栈程序员
新建数据表 - 看我如何克服选择困难症

新建数据表 - 看我如何克服选择困难症

作者: 终生程序员小松哥 | 来源:发表于2019-04-11 18:36 被阅读8次

每次面临新建数据表或新加字段,都会触发我的选择困难症;

1,究竟是什么类型:integer,char,varchar,tinyint?

2,类型的长度:integer该设置为多长,varchar该多长?

3,是否可以容许为空值?

4,不容许为空的话,默认值该是什么?

5,如何设置索引?

所以我做了下总结了风格和习惯,未必都对。大家做个参考:

究竟什么类型?

integer用于时间戳、商品价格。主要接触的是电商系统,我会把商品价格以”分“为单位进行保存,而不是”元“。避免带来传递过程中的精度不一致问题。

tinyint用于状态值、事件值、是非值(0/1)。因为mysql是没有布尔值的。

文本类型的定义为varchar。

类型长度?

integer、tinyint都定义为长度10位;varchar统一是255位。这样是不是有点浪费?放心好了,一般项目这点浪费很小。

可否为空?默认值是什么?

这两个问题是连一起的。我给团队的规定是,任何情况先不容许为空值。因为如果最后通过后端接口暴露出去后,为空的值会用null来表示,iOS是不认识的;当然也是可以克服的,只是想说,各个系统对于空值的表示并不一致,所以干脆不能为空。

关于默认值,我不会在表里面设置。实际上数据库作为一个数据持久化的场所,它知道的业务逻辑越少越好,默认值本质也算是一个业务逻辑。我的做法是写在业务代码里,在一个bean初始化的时候,就定义好其默认值。对于工程师来说,也形成了严谨的态度,保存记录前认真赋每个值。

关于业务逻辑不要写在数据库里这条准则:另一个类似做法就是,不写存储过程。因为根本无法进行代码管理。

如何设置索引值?

一个项目完成前,其实你是不能完全确定如何合理设置索引的。只有在项目完成后,再回来针对你写的sql语句,设置对应的索引。

总结下

按照以上准则来做,新建表再也难不倒我了。无非就是 integer 10位,不容许为空;然后设置下一个。。。项目结束后,回头再仔细调整下字段就OK了。

其他妙招

1,对于状态值、事件值:

我们总是不明白 1,2,3代表什么含义。即使当时是你自己建的,我保证你到第二天也忘了。好办法就是,增加个解释字段。比方 status,同时建个status_name来保存它具体的含义。

2,永远不要向外暴露id值:

之前做个类似偷菜的营销小工具,因为向外暴露的是用户的id值;让后就被人刷了,稍懂些的人就知道只要略微改造下链接,就可以查看其它人菜园了。。。 关键的id值,一定要用序列号来代替,让人找不规律,无法刷。

3,插入时间

所有会动态插入的数据都要加上add_time字段,方便之后排序和检查。

4,更新时间:

所有会动态更新的数据都要加上updat_time字段,方便之后排序和检查;特别重要的数据,甚至要记录下每次更新事件。

5,weight(权重字段):

对于商品、banner图之类的数据表,一定要加上weight。反正早晚产品经理也会让你加上的。

6,主键:

不是所有表都要加上自增字段的,如果有了可以作为主键的字段;自增字段就不需要了。

7,日志表:

记录系统里数据更新事件、或操作日志。

相关文章

  • 新建数据表 - 看我如何克服选择困难症

    每次面临新建数据表或新加字段,都会触发我的选择困难症; 1,究竟是什么类型:integer,char,varcha...

  • 如何克服选择困难症

    很多人都有选择困难症,我想就我读的书谈谈怎么克服。“选择悖论” ( Barry schwartz) 这本书里提到过...

  • 如何克服选择困难症?

    还记得高考疯狂刷题的岁月,现在想起来更多的是敬佩自己那时倔强不服输的拼搏模样。 但是想到题海中有个叫选择题的家伙,...

  • 如何克服“选择困难症”?

    本文是《选择的悖论》读书笔记。 在这本书里,心理学家巴里茨提出了一个革命性的观点:幸福意味着拥有自由和选择,但更多...

  • 如何克服选择困难症

    看动画片,故事里的男主角手持花朵,撕一片花瓣说向她表白,再撕一片说不向她表白,如此反复撕到最后一片花瓣,明明有了答...

  • 如何克服选择困难症

    选择困难症,不只是天秤座的特质,在我们每个人生活中,都会碰到如此让人纠结的时刻。小到中午是意面还是卤肉饭,大到我应...

  • 如何克服选择困难症

    “人生最大的权力在于选择。”这是一句名人曾经说过的话。 “人生最难的事也在于选择。”这也是一句名人曾经说过的话。 ...

  • 如何克服“选择困难症”?

    你有选择困难症吗? 不知你是否也经常遇到这样的场景:点餐时纠结于京酱肉丝还是鱼香肉丝;买衣服时纠结于黑色还是白色;...

  • (一)如何克服选择困难症?

    在生活中,优柔寡断性格的人在选择中会是下风,因为他们纠结着,不知道如何下手选择? 那么他为什么会无从下手去选择呢?...

  • 克服选择困难症

    不知道从什么时候开始,选择焦虑症几乎成了现代人的通病,大到选学校、选行业、选公司这类人生大事,小到该穿哪件衣服上班...

网友评论

    本文标题:新建数据表 - 看我如何克服选择困难症

    本文链接:https://www.haomeiwen.com/subject/qfyxwqtx.html