初识IndexedDB【Nosql】上

网友投稿 618 2022-05-30

一,什么是IndexedDB?

IndexedDB 就是浏览器提供的本地数据库,它可以被网页脚本创建和操作。IndexedDB 允许储存大量数据,提供查找接口,还能建立索引。

IndexedDB 不属于关系型数据库(不支持 SQL 查询语句),更接近 NOSQL 数据库。

初识IndexedDB【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小时内删除侵权内容。

上一篇:Ubuntu下使用Git_6
下一篇:Python 的上下文管理器是怎么设计的?
相关文章