帕雷托曾提出,在意大利80%的财富为20%的人所拥有,并且这种经济趋势存在普遍性。后来人们发现,在社会中有许多事情的发展,都迈向了这一轨道。世界上有很多专家正在运用这一原理来研究、解释相关的课题。例如,这个原理经过多年的演化,已变成当今管理学界所熟知的“80/20原理”,即百分之八十的价值是来自百分之二十的因子,其余的百分之二十的价值则来自百分之八十的因子。帕雷托原理是指世界上充满了不平衡性,比如20%的人口拥有80%的财富,20%的员工创造了80%的价值,80%的收入来自20%的商品,80%的利润来自20%的顾客,等等。这种不平衡关系也可以称为二八法则。该法则认为,资源总会自我调整,以求将工作量减到最少。抓好起主要作用的20%的问题,其他80%的问题就迎刃而解了。所以,在工作中要学会抓住关键的少数,要用20%的精力付出获取80%的回报。因此,这种法则又叫省力法则。
假设我们需要开发一个幼儿园学生和家长管理系统。这里我给出一个常见的表格设计。
学号 | 姓名 | 年龄 | 爸爸姓名 | 爸爸手机号码 | 妈妈姓名 | 妈妈联系方式 |
---|---|---|---|---|---|---|
001 | 张小明 | 6 | 张大明 | 1866000800 | 汪小丫 | 18680006000 |
002 | 张二明 | 5 | 张大明 | 1866000800 | 汪小丫 | 18680006000 |
003 | 刘小明 | 5 | 刘州全 | 1390000811 | 龙民梅 | 13961106000 |
004 | 刘二明 | 4 | 刘州全 | 1390000811 | 龙民梅 | 13961106000 |
这种表格设计,大部分情况下工作正常,但是偶尔有数据冗余。如果一家有多个小孩的时候,那么父母信息就会冗余。我们可以通过拆分表格来避免这种冗余,下面给出一种方案。
学号 | 姓名 | 年龄 | 家庭ID |
---|---|---|---|
001 | 张小明 | 6 | 001 |
002 | 张二明 | 5 | 001 |
003 | 刘小明 | 5 | 002 |
004 | 刘二明 | 4 | 002 |
学号 | 家庭ID |
---|---|
001 | 001 |
002 | 001 |
003 | 002 |
004 | 002 |
家庭ID | 爸爸姓名 | 爸爸手机号码 | 妈妈姓名 | 妈妈联系方式 |
---|---|---|---|---|
001 | 张大明 | 1866000800 | 汪小丫 | 18680006000 |
002 | 刘州全 | 1390000811 | 龙民梅 | 13961106000 |
我们在课堂上,应该详细讲解拆后面这种方案,怎么科学怎么好,满足第几级范式,怎么联合查询,怎么提交事务等等。但是在真实工作中,又要特意避免后面这种做法。根据80/20法则,一个项目100个功能只有20个是重要的,100张表只有20个是重要的。实际情况比这个还要极端。
只有对于极端重要的表才值得按照后面这种方法进行表设计。举例来说,一个项目100张表,最后一看存储空间分布,99%的硬盘空间都被其中一张表占用了,那么可以适当考虑对这张表进行拆分减少冗余信息。