簡體   English   中英

是否可以在同一個 HTTP 請求中執行多個 SQL 數據庫請求

[英]Is it ok to execute many SQL database request in the same HTTP request

我正在開發一個聊天應用程序,但是當聊天消息發送 3 或 4 個請求到數據庫時,我覺得這可能不是一個好習慣。 我執行以下

  • 檢查兩個用戶之間是否有聊天室。

如果有

  • 為用戶 1 創建 1 個聊天“所以每個用戶都會有聊天消息的副本”
  • 為用戶 2 創建 1 個聊天“所以每個用戶都會有一份聊天消息的副本”
  • 更新聊天室中的最后一條消息

如果不

  • 為沒有“每個用戶都應該有一個聊天室”的用戶創建聊天室
  • 為用戶 1 創建 1 個副本聊天
  • 為用戶 2 創建 1 個副本聊天
  • 更新聊天室中的最后一條消息。

如果兩個用戶沒有公共聊天室,則可以執行更多請求

這是壞的還是好的,你有什么想法?

這是我的數據庫 model 在此處輸入圖像描述

我認為在一個請求中進行所有數據庫更改是一種很好的做法,因為如果您發出多個請求,服務器可能只會執行其中的一些(例如,其他的會在 inte.net 上丟失),並且那么實際上只有部分必要的更改在數據庫上執行,並且您會遇到數據不一致的情況。

同樣,即使在一個請求中,您也應該防止只有部分更改在數據庫上執行的危險(其他更改因數據庫連接中斷而丟失)。 您可以通過在一個數據庫事務中執行所有更改、通過諸如begincommit之類的數據庫命令或通過將所有創建/更新語句封裝在一個數據庫過程中來實現這一點。 詳細信息將取決於您使用的數據庫(和數據庫客戶端庫)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM