資料
ORM · 物件關聯對映
/ oh-arr-EMM /
ORM 是一種工具,它讓你能把資料庫裡的列當作程式碼裡的普通物件(object)來用,於是你讀寫資料時不必為每一件小事都手寫 SQL。你呼叫 user.save() 或 User.find(1),ORM 便默默把它翻譯成資料庫真正想要的 SELECT 和 INSERT 語句。
可以把它想成一個雙語中間人。你的程式碼說的是物件和方法這門話,資料庫說的是表格和 SQL 那門話;ORM 居中而坐,把一列列的欄變成一個你能隨手擺弄的整潔物件,等到要儲存時,再把你的改動翻回 SQL。
它的好處是少寫樣板程式碼,寫出的程式碼讀起來像在講你的業務問題,而不是資料庫的水管活。代價是這份便利可能遮住真正發生的事——一個看著無害的迴圈,背地裡也許偷偷發了幾百條查詢——所以即便 ORM 替你寫 SQL,懂得底層的 SQL 仍然划算。
# With an ORM user = User.objects.get(id=1) # What it runs underneath # SELECT * FROM users WHERE id = 1;
一行物件程式碼,ORM 替你寫好 SQL。
ORM 並不能取代你懂 SQL——遇到棘手或對效能要求高的查詢,多數團隊仍會落回手寫 SQL。
又稱
另見