我的Angular/Node應用程序顯示用戶事件的時間線。用戶可以添加,編輯和刪除事件。在AngularJS和數據庫之間保持唯一標識符同步的最佳方法是什麼?
當添加了新的事件,AngularJS添加事件內容作爲JSON成時間軸陣列用於立即顯示給用戶。同時,AngularJS調用一個將事件插入數據庫的Node API,在此過程中,DB生成一個event_id(使用自動增量)。
什麼是保持在事項標識和AngularJS數據庫之間同步的最佳設計(MySQL的)?
思路:
我可以等待API返回的事項標識,並插入到AngularJS時間表陣列。這裏的問題是,如果用戶在返回event_id之前編輯事件,則應用程序不知道要更新哪個事件。
當添加一個新事件並在時間軸數組中使用該事件時,我可以在AngularJS端生成一個隨機數(temp_id),並通過API將其發送到數據庫。這裏的一個問題是跟蹤兩種類型的ID:temp_id和event_id
這兩種想法都有缺點。
有人可以提出更好的設計嗎?
如何添加一個透明的屏幕覆蓋,以限制所有的用戶事件,直到從您的Node API接收到響應爲止?這可以與概念1一起實施。 –
這兩種方法都有一個很大的缺點 - 數據不一致。由於某些問題,事件可能不會保存在服務器中,或者用戶甚至可以嘗試更改/刪除未保存在服務器中。所以,你需要像Dhruv Saxena所建議的那樣使用方法,或者在某種事件的UI鎖定中使用1,直到它將在服務器中創建。 –