indexedDB 內鍵與外來鍵
indexedDB 內鍵與外來鍵是對於主鍵來源的分類,非常簡單的概念。
關於主鍵更多內容可以參閱indexedDB 資料庫主鍵一章節。
一.內鍵(in-line key):
顧名思義,所謂內鍵就是以儲存資料中的某個屬性作為主鍵。
通過IDBDatabase.createObjectStore()方法的第二個物件引數的keyPath屬性設定。
二.外來鍵(out-of-line key):
與內鍵相對應,外來鍵自然是非儲存資料的屬性,比如自增長數值作為主鍵。
三.程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let students=[ { id:1001, name:"張三", age:21, sex:"男" },{ id:1002, name:"李四", age:20, sex:"女" },{ id:1003, name:"王五", age:19, sex:"女" } ]; let request = window.indexedDB.open("antzone", 1); request.onupgradeneeded = (ev) => { let db = ev.target.result; if (!db.objectStoreNames.contains('students')) { let objectStore = db.createObjectStore('students',{keyPath:"id"}); objectStore.createIndex("xingbie","sex",{ unique: false }); } } request.onsuccess = (ev) => { let db = ev.target.result; let transaction = db.transaction(['students'], 'readwrite'); let objectStore = transaction.objectStore('students'); for(let i=0;i<students.length;i++){ objectStore.add(students[i]); } } </script> </head> <body> <p>為物件倉庫批量新增資料</p> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).上述主鍵是內鍵。
(2).因為主鍵值是採用被儲存資料中的一個屬性。
(3).之所以叫做內鍵,通俗的理解就是主鍵屬於資料內部的一個屬性。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let students=[ { id:1001, name:"張三", age:21, sex:"男" },{ id:1002, name:"李四", age:20, sex:"女" },{ id:1003, name:"王五", age:19, sex:"女" } ]; let request = window.indexedDB.open("antzone", 1); request.onupgradeneeded = (ev) => { let db = ev.target.result; if (!db.objectStoreNames.contains('students')) { let objectStore = db.createObjectStore('students',{autoIncrement:true}); objectStore.createIndex("xingbie","sex",{ unique: false }); } } request.onsuccess = (ev) => { let db = ev.target.result; let transaction = db.transaction(['students'], 'readwrite'); let objectStore = transaction.objectStore('students'); for(let i=0;i<students.length;i++){ objectStore.add(students[i]); } } </script> </head> <body> <p>為物件倉庫批量新增資料</p> </body> </html>
上面程式碼中,主鍵採用自增長方式,程式碼執行效果截圖如下:
程式碼分析如下:
(1).主鍵採用自增長方式。
(2).上述主鍵是一個外來鍵,因為它不是資料內部的屬性。
相關文章
- 主鍵和外來鍵
- indexedDB 索引與primarykey主鍵區別Index索引
- sqlserver外來鍵SQLServer
- 通過外來鍵找主鍵
- indexedDB 資料庫主鍵Index資料庫
- 10.30 索引,外來鍵索引
- 外來鍵約束
- MYSQL的外來鍵MySql
- 外來鍵的變種
- 新的主鍵和外來鍵的語法
- 約束外來鍵筆記筆記
- django外來鍵如何賦值Django賦值
- mysql建立外來鍵語句MySql
- 為什麼不用外來鍵
- 關於外來鍵約束
- openGauss-外來鍵鎖增強
- 實現 MongoDB 外來鍵關聯MongoDB
- Javaweb-約束-外來鍵約束JavaWeb
- Django(15)外來鍵和表關係Django
- 教你mysql如何增加外來鍵約束MySql
- AppBoxFuture(七): 分散式外來鍵約束APP分散式
- 資料庫:外來鍵是什麼資料庫
- oracle外來鍵約束的總結Oracle
- django | 為 model 定義邏輯外來鍵Django
- 通過外來鍵連線多個表
- 為什麼大家很少使用外來鍵了?
- Typescript 下 Mongoose 外來鍵型別&外來鍵陣列型別定義&型別保護&聯合型別理解TypeScriptGo型別陣列
- 20240722-0725 資料庫外來鍵報錯資料庫
- mysql不能新增外來鍵約束怎麼辦MySql
- 如果新增欄位是外來鍵,如何處理?
- Mysql truncate table時解決外來鍵關聯MySql
- SQL外來鍵約束的含義及建立SQL
- MySQL 用隨機資料填充外來鍵表MySql隨機
- 外來鍵沒有索引哪些DML操作會被阻塞索引
- 資料庫-三正規化優化與不推薦使用外來鍵資料庫優化
- cad載入外掛快捷鍵命令 cad安裝外掛的快捷鍵
- MySQL之外來鍵MySql
- mysql~資料完整性考慮~外來鍵約束MySql