数据范式化

Posted by Song on March 14, 2019

数据范式化的几个概念: 1.任何类型的数据在 state 中都有自己的 “表”。 2.任何 “数据表” 应将各个项目存储在对象中,其中每个项目的 ID 作为 key,项目本身作为 value。 3.任何对单个项目的引用都应该根据存储项目的 ID 来完成。 4.ID 数组应该用于排序。

优点:去除冗余数据,结构扁平,避免深层次嵌套 缺点:查询性能低下

//原始数据
{
  'id':1,
  'name':'xiaoliang',
  'age':20,
  'hobby':[{
    id:30,
    desp:'足球'
  },{
    id:40,
    desp:'篮球'
  },{
    id:50,
    desp:'羽毛球'
  }]
}

//范式化
{
  person:{
     '1':{
         'id':1,
         'name':'xiaoliang',
         'age':20,
         'hobby':['30','40','50']
     }
  },
  hobby:{
    '30':{
      id:'30',
      desp:'足球'
    },
    '40':{
      id:'40',
      desp:'篮球',
    },
    '50':{
      id:'50',
      desp:'羽毛球'
    }
  }
}