指南

什麼是 CRUD?建立、讀取、更新、刪除一次看懂

CRUD 代表建立(create)、讀取(read)、更新(update)與刪除(delete)——應用程式對儲存資料所做的四項基本工作。新增一位客戶是建立,查看客戶清單是讀取,修改他的電話號碼是更新,而把他移除則是刪除。大多數商務應用程式——CRM、預約系統、庫存追蹤工具、管理後台——主要都是 CRUD,再加上一些規則與良好的版面設計。

用 AI 開發時,為什麼它很重要

CRUD 是一套詞彙,能把模糊的應用程式想法變成精確的要求。「一個管理供應商的應用程式」會讓 AI 只能猜測;「建立、列出、編輯與刪除供應商,欄位如下」則明確告訴它要建構哪些畫面、資料庫操作與伺服器路由。

它也提供了測試的檢查清單。對於應用程式中的每一種紀錄,你都可以問四個問題:我能新增一筆嗎?我能查看它們嗎?我能修改一筆嗎?我能移除一筆嗎?而且,只有對的人才能做這些操作嗎?許多 AI 開發的應用程式只能建立紀錄,卻無法編輯;或是任何人都能刪除任何東西。

日常生活的比喻:食譜卡盒

想像廚房架子上的一盒食譜卡。

  • **建立:**寫下一張新卡片並歸檔。
  • **讀取:**翻閱整盒卡片,或抽出千層麵那一張。
  • **更新:**把「200 克起司」劃掉,改寫成「250 克」。
  • **刪除:**把一張卡片抽出來丟掉。

現在再加上規則:只有主廚可以丟掉卡片、每張卡片都必須有標題,而且不能歸檔兩張同名的卡片。這就是一個帶有驗證與權限的 CRUD 應用程式——而這正是大多數真實應用程式的樣子。

CRUD 在每一層如何呈現

每一種操作都會出現在畫面、伺服器與資料庫中。把三者並排看,就能理解應用程式是如何建構的。

操作畫面上API 請求(REST)資料庫中的 SQL
建立一個「新增」按鈕與一張表單POST /api/suppliersINSERT
讀取一份附有搜尋與篩選功能的清單;一個詳細資料頁面GET /api/suppliers 與 GET /api/suppliers/42SELECT
更新一張「編輯」表單或行內編輯PUT 或 PATCH /api/suppliers/42UPDATE
刪除一個附有確認步驟的「刪除」按鈕DELETE /api/suppliers/42DELETE(或將資料列標記為已刪除)

畫面是前端,API 請求是前端與後端溝通的方式,而 SQL 則是後端與資料庫溝通的方式。如果這些名詞對你來說還很陌生,請參閱什麼是 API與什麼是資料庫。

實例:設備借用追蹤工具

某所學校的媒體部門會把攝影機與麥克風借給學生,但他們一直搞丟追蹤紀錄。他們想要一個簡單的應用程式。

紀錄類型。兩種東西:設備(名稱、類型、序號、狀況)與借用紀錄(借的是哪一台設備、哪位學生、借出日期、應還日期、歸還日期)。

設備的 CRUD:

  • **建立:**工作人員新增一台攝影機並輸入序號。規則:序號必須唯一。
  • **讀取:**所有設備的清單,可依類型與「目前可借」篩選;一個詳細資料頁面,顯示單一項目的借用歷史。
  • **更新:**將狀況改為「需要維修」。
  • 刪除:通常不是真正的刪除。如果一台有 30 筆過往借用紀錄的攝影機被刪除,那些借用紀錄就會失去連結。因此改為標記為「已退役」,讓它從可借清單中消失,但歷史紀錄保留下來。這稱為軟刪除(soft delete)。

借用紀錄的 CRUD:

  • **建立:**把一項設備借給學生。規則:已被借出的設備不能再借出。
  • 讀取:「逾期借用」——應還日期已過、而且沒有歸還日期的清單。
  • **更新:**設備歸還時,記錄歸還日期。
  • **刪除:**僅限工作人員,用於刪除誤登的借用紀錄。

**權限。**學生只能查看可借的設備;只有工作人員可以建立、更新或刪除。這些檢查是在伺服器上執行,而不只是把按鈕隱藏起來。

這就是整個應用程式。真正有趣的部分——不會重複借出、逾期清單、每件設備的歷史紀錄——都是建立在單純的 CRUD 之上的規則與查詢。

關鍵名詞

  • **紀錄(資料列):**一個項目,例如一位供應商或一筆借用。
  • **實體/資源:**一類紀錄,例如「供應商」。每一類通常都有自己的資料表與一組 CRUD 畫面。
  • **驗證(Validation):**對輸入內容的檢查,例如必填欄位、有效的電子郵件、正數的數量。為了方便,應在表單中檢查;為了安全,也應在伺服器上檢查。
  • **軟刪除(Soft delete):**將紀錄標記為已刪除或已封存,而不是真正移除,讓歷史與連結得以保留。
  • **分頁(Pagination):**一次只顯示長清單的一頁,讓應用程式保持快速。
  • **稽核紀錄(Audit log):**記錄誰在什麼時候建立、修改或刪除了什麼。
  • **管理後台(Admin panel):**供工作人員管理應用程式資料的一組 CRUD 畫面。

常見錯誤與誤解

  • 漏掉其中一項。 應用程式經常只有建立與讀取,卻沒有編輯功能,於是每次打錯字就只能刪除後重新輸入。請為每一個實體檢查這四項操作。
  • 刪除造成的破壞。 刪除一位有帳單的客戶,可能會留下孤立的帳單,或抹除歷史紀錄。請針對每個實體決定:阻擋刪除、軟刪除,或連同相關紀錄一起刪除。
  • 只在介面上設定權限。 隱藏刪除按鈕並不能阻止別人送出 DELETE 請求。伺服器必須檢查是誰在提出請求。
  • 依 ID 更新而不檢查擁有者。 如果使用者 A 只要改變網址中的數字,就能編輯 /api/notes/42,他可能就編輯了使用者 B 的筆記。每一次更新與刪除都必須確認該紀錄屬於發出請求的人。
  • 刪除時沒有確認。 一次誤觸不應該摧毀資料。請要求確認步驟,或提供復原功能。
  • 「CRUD 很基本,不值得做。」 許多有價值的產品都是 CRUD 應用程式,它們比通用工具更貼合某個工作流程。

該向你的 AI 建構工具要求什麼

每個實體都採用這種模式,一次做一個:

建立一個供應商功能,包含列表、新增、編輯與刪除。欄位:名稱(必填)、聯絡電子郵件(須為有效的電子郵件)、電話、類別(食品、包裝、清潔其中之一)、備註。列表檢視可依名稱搜尋、依類別篩選,每頁 20 筆。刪除前請先確認;若供應商有訂單,則改為封存而不是刪除。只有登入的工作人員可以新增、編輯或封存——請在伺服器上強制執行。

接著測試全部四種操作,分別以有權限的使用者與不應有權限的人身分測試。一個實體運作正常後,再加入下一個。如何建構內部工具說明了 CRUD 畫面如何變成完整的管理後台,而什麼是 Postgres則說明了這些應用程式大多依託的資料庫。

Mythex 上的 CRUD 應用程式

CRUD 應用程式是 AI 應用程式建構工具最擅長的項目之一,Mythex 也不例外。在聊天中說明實體與其欄位,Mythex 就會為專案附加一個 Postgres 資料庫、建立資料表,並在即時預覽中建構列表、表單與詳細資料畫面;接著你可以執行 /test 來檢查流程。文件中有一份 CRUD 應用程式食譜,附有起始提示詞,而內部工具建構器與儀表板範本則是很好的起點。

常見問題

CRUD 代表什麼?

CRUD 代表建立(create)、讀取(read)、更新(update)與刪除(delete):新增一筆紀錄、查看紀錄、修改一筆紀錄,以及移除一筆紀錄。幾乎所有儲存資料的應用程式,都是由這四種操作所組成。

什麼是 CRUD 應用程式?

CRUD 應用程式的主要工作是透過表單、清單與詳細資料頁面來管理紀錄,例如 CRM、庫存追蹤工具、預約後台或職缺管理後台。大多數內部工具與管理後台都是 CRUD 應用程式。

CRUD 和 REST API 有什麼關係?

在典型的 REST API 中,建立使用 POST 請求,讀取使用 GET,更新使用 PUT 或 PATCH,刪除使用 DELETE。後端接著會執行對應的資料庫操作:INSERT、SELECT、UPDATE 或 DELETE。

CRUD 應用程式太簡單,沒有價值吧?

不會。許多實用的商務軟體都是 CRUD,再加上良好的規則、權限與報表。價值在於把資料模型建得好,並且貼合工作流程,而不在於使用了特別的技術。

Mythex · Pricing · 用 AI 打造任何東西 · 網站與應用程式範本 · Mythex 比較 · AI 應用程式開發詞彙表 · 免費的 AI 應用程式開發工具 · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港)