表结构设计中简洁和精致之间的取舍0317

作者: 红尾黄花鱼 | 来源:发表于2016-03-17 14:17 被阅读96次

    帕雷托曾提出,在意大利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%的硬盘空间都被其中一张表占用了,那么可以适当考虑对这张表进行拆分减少冗余信息。

    相关文章

      网友评论

        本文标题:表结构设计中简洁和精致之间的取舍0317

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