『新手日記』Day-20 CRUD是什麼?
在還沒開始學習後端時就有看過這個詞,在進入正式學習前先來預習一下吧
昨天我們有提到:『RESTful 的設計以「資源」為中心,再搭配 HTTP method 的動詞,以及 CRUD 等資料操作』,昨天認識了RESTful跟HTTP method,今天來認識CRUD
CRUD
CRUD 是設計資料系統時很重要的基本技巧,在維基百科翻譯為「增刪改查」,分表代表了:
- Create (C)新增,建立資料,將定義好的欄位寫入對應的值
- Read (R) 讀取,讀取資料,查詢資料的相關內容
- Update (U) 更新,更新特定欄位的資料
- Delete (D) 刪除,刪除資料
四個動作合併稱之為 CRUD,通常在 SQL資料庫或API,做某一資源存取的時候會遇到。
來自維基百科https://zh.wikipedia.org/wiki/%E5%A2%9E%E5%88%AA%E6%9F%A5%E6%94%B9#cite_note-1
CRUD應用
SQL(Structured Query Language),一種資料庫查詢和程式設計語言,用於存取數據以及查詢、更新和管理關係資料庫系統。
但在實務上,當我們用 Express.js 開發應用程式時,會希望能直接用 JavaScript 操作資料庫,而不需要另外撰寫 SQL。因此開發出了『物件映射 (object mapping)』 的技術,用程式語言裡的『物件』來包裝資料庫的 SQL (structured query language),讓開發者可以直接使用物件導向的方式操作資料庫。
依不同的資料庫類型,會分別使用不同的映射技術:
針對文件資料庫 (document database) 的:ODM (Object Document Mapper)
針對關聯式資料庫 (relational database)的:ORM (Object Relational Mapping)
ODM 與 ORM 都是讓開發者可以使用物件導向語法來操作資料庫,同時也增加程式碼的易讀性與維護性,只是對應的類型不同。
透過AC的例子,我們在資料庫尋找一筆名為『買蘋果』的TodoList透過 ORM 的語法:
1 | Todo.find ({ name: '買蘋果', done: { false }}) |
若使用 SQL 的指令的話,會是:
1 | SELECT * FROM Todos WHERE name='買蘋果' AND done=FALSE; |
身為懶人的我當然選擇第一個啊XD
這是一篇比較偏向預習的文章,除了看AC的教案外還有鐵人賽的資料,但幾乎所有的文章主要的部分還是要靠實作來練習,基於本人生了一場名字叫懶惰的病,實作的部分就不放上來,連假第一天就得了病,希望明天可以痊癒XDD