初识Vue技术(vue的技术介绍)
605
2022-05-30
一,什么是IndexedDB?
IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。IndexedDB 允许储存大量数据,提供查找接口,还能建立索引。
IndexedDB 不属于关系型数据库(不支持 SQL 查询语句),更接近 NOSQL 数据库。
总结:
indexedDB是一个非关系型数据库
它不需要我们去写一些特定的SQL语句来对数据库进行操作
它是NoSQL的,数据形式使用的json
二,关系型数据库和非关系型区别
关系型和非关系型数据库的主要差异是数据存储的方式。关系型数据天然就是表格式的,因此存储在数据表的行和列中。数据表可以彼此关联协作存储,也很容易提取数据。
与其相反,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构。你的数据及其特性是选择数据存储和提取方式的首要影响因素。
ps:
实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。
三,indexedDB的特性
indexedDB没有表的概念,而是使用objectStore。
一个数据库中可以包含多个objectStore
objectStore是一个灵活的数据结构,可以存放多种类型数据,也就是说一个objectStore相当于一张表,里面储存的每条数据和一个键相关。
我们可以使用每条记录中的某个字段作为键值(keyPath),也可以使用自动生成的递增数字作为键值(keyGenerator),也可以不指定。
选择键的类型不同,objectStore可以存储的数据结构也有差异
四,创建数据库
// 打开数据库,若没有则会创建 const request = indexedDB.open(dbName, version);
4.1,回调
打开成功:
// 数据库打开成功回调 request.onsuccess = function (event) { db = event.target.result; // 数据库对象 console.log("数据库打开成功"); resolve(db); };
打开失败:
// 数据库打开失败的回调 request.onerror = function (event) { console.log("数据库打开报错"); };
数据库有更新时候的回调:
request.onupgradeneeded = function (event) { // 数据库创建或升级的时候会触发 console.log("onupgradeneeded"); db = event.target.result; // 数据库对象 var objectStore; // 创建存储库 objectStore = db.createObjectStore("signalChat", { keyPath: "sequenceId", // 这是主键 // autoIncrement: true // 实现自增 }); // 创建索引,在后面查询数据的时候可以根据索引查 objectStore.createIndex("u_id", "u_id", { unique: false }); };
NoSQL 数据库
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。