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).上述主鍵是一個外來鍵,因為它不是資料內部的屬性。
相關文章
- 父表修改與外來鍵的關係(主鍵DML與外來鍵的關係)
- sqlserver外來鍵SQLServer
- indexedDB 索引與primarykey主鍵區別Index索引
- MYSQL的外來鍵MySql
- 外來鍵技術
- indexedDB 資料庫主鍵Index資料庫
- SQL的主鍵和外來鍵約束SQL
- Oracle根據主鍵查詢外來鍵Oracle
- 關於 oracle 外來鍵引用 與 goldengateOracleGo
- mysql中的外來鍵MySql
- 菜鳥學資料庫(四)——超鍵、候選鍵、主鍵、外來鍵資料庫
- 新的主鍵和外來鍵的語法
- mysql建立外來鍵語句MySql
- django外來鍵如何賦值Django賦值
- Oracle 外來鍵查詢sqlOracleSQL
- 10.30 索引,外來鍵索引
- 【實驗】【外來鍵】小議外來鍵約束對應用程式的影響
- 修改外來鍵為validate時需要驗證資料是否符合外來鍵約束
- 實現 MongoDB 外來鍵關聯MongoDB
- 如何批量使外來鍵(FK)失效
- 資料庫外來鍵,用是不用?資料庫
- append提示與外來鍵還有ORA-12838APP
- 外來鍵有無索引帶來的影響學習與測試索引
- 教你mysql如何增加外來鍵約束MySql
- Django(15)外來鍵和表關係Django
- 資料庫:外來鍵是什麼資料庫
- 外來鍵缺索引檢查指令碼索引指令碼
- oracle外來鍵約束的總結Oracle
- mysql 使用foreign key(外來鍵)MySql
- 查詢沒有索引的外來鍵索引
- MySQL禁用恢復外來鍵約束MySql
- 查詢一個表的外來鍵
- Oracle 外來鍵的級聯處理Oracle
- openGauss-外來鍵鎖增強
- Javaweb-約束-外來鍵約束JavaWeb
- 資料庫約束 主鍵-唯一性-Check-外來鍵資料庫
- 通過外來鍵連線多個表
- Oracle定義約束 外來鍵約束Oracle