目录

范式

[TOC]

范式是什么

Paradigm (范式) 是一个领域中主流的行事套路,它 **包括 philosophy (理念) 和 methods (方法)两部分。**Philosophy (理念) 这个概念很好理解。比如,购物理念就是什么该买,什么不该买,怎么买。环保理念就是什么还保护,什么不该保护,以及怎么保护。时尚理念就是什么是时尚,什么不是,如何时尚。同理,穿衣理念就是什么该穿,什么不该穿,怎么穿。**那么,某事的 philosophy (理念) 就是,做某事,什么该做,什么不该做,以及方式。**理念说完了就是 methods (方法)。**Methods (方法)**就是继方式之后的具体的操作。举个例子:屠宰行业的杀猪的 paradigm (范式)是3岁以上的杀 (什么该做),3岁以下的不杀 (什么不该做),用电击的方法杀 (方式)。具体该如何操作 (方法)。In sum, paradigm (范式) = philosophy (理念) + methods (方法)=主流认为什么事该做 + 方式 + 方法。

简单来说就是原则,方式,方法

数据库中的三范式

  • 第一范式,一个字段只存一个意义的值。

    {学号,性别+年龄} 。解决办法:{学号,性别,年龄}

  • 第二范式,如果主键是复合主键,非主键字段不能依赖主键的一部分,必须依赖全部。

    {学号,学科,分数,总分},分数依赖复合主键,但是总分只依赖学科一个字段,所以不符合第二范式。解决办法:{学号,学科,分数} {学科,总分}

  • 第三范式,不能有冗余。

    {学号,班级,班主任}班主任字段就会有大量冗余。解决办法:({学号,班级} {班级,班主任})

范式不一定要严格遵守,要根据具体情况抉择,适当的违反有时候会带来好处更多一些。例如,

eg1:qq的用户表存储qq图标的点亮情况,如果每个图标用一个字段存储,那么几十个图标会使表很宽、很浪费空间。如果用位图存储所有的点亮情况,一个或者两个字段就可以。虽然违反了第一范式,但是依然是个好办法。

eg2:第二、第三范式虽然保证了表的严谨,但是可能带来更多的连接。适当违反可以减少连接,特别是当分布式部署时,会省去很多麻烦。