2017-09-21 23 views
0

這應該是一個很常見的問題:假設我正在更新users表以及users_organizations表。從UI的角度來看,只有一個按鈕「保存」。在NodeJS中分解AJAX更新到多個數據庫表的首選方法

我可以:

1)創建一個單一的API路線 2)爲每個資源(1個爲users,一個用於users_organizations

然後一個API路線,假設我選1) 。我應該在單個數據庫調用中更新這兩個表嗎?還是應該將它分成兩個數據庫調用?

一般來說,我不知道如何解決這些問題。有時候會有一個動作同時影響2個以上的數據庫表。我如何確保健壯性,正確的錯誤處理,並保持我的代碼一次完整?

+2

你應該閱讀關於數據庫,特別是關於交易。您應該執行單個API調用並更新事務內的兩個表。 –

+0

謝謝@ vitaly-t!順便說一句,在這裏btw的承諾:) :) – nicodjimenez

+1

那麼,在這種情況下,你是爲了一種享受,因爲'pg-promise'自動處理交易。 –

回答

1

絕對是一個我也在努力的問題。

從我過去看到的情況來看,大多數與UI操作相關的操作都是相關的,並且在單擊「保存」時可以給出一個常用操作名稱,如update-user。我會有一個API端點來更新用戶,例如在REST API中的PUT /api/users/123。該請求的主體將包含用戶所屬的更新字段和新組織。

然後在服務器端,我會進行2個數據庫調用,一個更新user表和一個更新user_organization表。

如果您覺得2個操作非常不同以至於很難想出一個通用的API端點名稱,或者需要在應用程序的其他部分獨立調用它們,我會爭辯說它們應該是2個不同的API端點。

在一天結束時,我試着問,如果一個新的開發人員試圖理解這段代碼,那麼最簡單的方法是什麼?

相關問題