一個“儲存”按鈕同時存在“增刪改”三種操作,該如何去實現?
稿件來源: https://developer.aliyun.com/article/710160
一般情況下,對錶格中的資料進行 “ 增刪改 ” 操作,都是直接運算元據庫。現在有些專案因為設計或者最佳化的緣故,不對錶格中的資料進行 “ 增刪改 ” ,而是透過最後 “ 儲存 ” 按鈕的操作,一次性將資料傳至伺服器,由伺服器對資料進行 “ 增刪改 ” 。
以下透過給使用者分配角色這樣的功能進行說明。
操作介面大致如下(直接手畫,略顯粗糙,能看明白就行):
說明:
· “ 新增 ” 、 “ 修改 ” 和 “ 刪除 ” 都不是直接運算元據庫。
· 點選 “ 儲存 ” 時才將資料傳給伺服器。
· 此專案中的刪除均為邏輯刪除(即,只是對資料打上 “ 刪除 ” 狀態的標記),不是物理刪除。
· 文中說的 “ID” 為使用者角色的主鍵。
第一種方法:先刪後增
· 直接刪除使用者下的所有角色,將前端傳過來的資料統一新增。
優缺點:
· 優點:邏輯簡單,容易實現。
· 缺點:會產生大量的刪除資料。
第二種方法:透過有無 ID 進行操作判斷
· 過濾資料:透過 stream 過濾出無 ID 的資料和有 ID 的資料。
· 新增:無 ID 的資料均為新增的資料,在伺服器中直接對這些資料進行新增操作即可。
· 修改和刪除:查詢出使用者所有的角色,將查詢出來的 ID ( ID_A )與前端傳過來的有 ID 的資料( ID_B )進行比對,交集(即 ID_A 與 ID_B 都有的資料)即為修改,差集(即 ID_A 有的資料,在 ID_B 中沒有)即為刪除。
優缺點:
· 優點:影響的資料量較少
· 缺點:實現起來比較複雜
第三種方法:前端部分分類
· 前端分類:前端將被邏輯刪除的資料儲存在 delete 物件中。
· 資料上傳:將表格中的資料(包含有新增的資料和修改的資料)和 delete 物件中的資料一起上傳至伺服器。
· 後端分類:將表格中的資料分為有 ID 的資料和無 ID 的資料。
· 增刪改操作:無 ID 的資料進行新增,有 ID 的資料進行修改, delete 物件中的資料進行刪除。
優缺點:
· 優點:影響的資料量較少,前端的分類操作比較容易,後端的分類操作和增刪改操作也比較容易。
· 缺點:後端仍需要進行分類操作。
第四種方法:前端全分類
· 前端分類:前端將需要進行新增、修改和刪除的資料分別放到 add 物件、 update 物件 和 delete 物件中。
· 資料上傳:將分類之後的資料上傳至伺服器。
· 後端增刪改操作:對 add 物件中的資料進行新增,對 update 物件中的資料進行修改,對 delete 物件中的資料進行刪除。
優缺點:
· 優點:影響的資料量較少,後端容易實現。
· 缺點:前端實現較難。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69926013/viewspace-2651731/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何在一個頁面同時實現增,刪,改。
- 如何點選一個按鈕實現列印
- oracle儲存過程詳解--遊標 實現增、刪、改、查Oracle儲存過程
- 第一個mybatis程式,實現增刪改查CRUDMyBatis
- easyui treegrid增、刪、改及批量儲存UI
- Java實現簡單的增刪改查操作Java
- .NET使用儲存過程實現對資料庫的增刪改查儲存過程資料庫
- 看Zepto如何實現增刪改查DOM
- ASP.NET中利用Repeater實現增刪改操作ASP.NET
- Golang中map的三種宣告方式和簡單實現增刪改查Golang
- 表增刪改欄位,及基表改變等相關操作對檢視、同義詞、儲存過程的影響儲存過程
- 寫一個簡單的Linkedlist,實現增刪改查
- golang使用go-sql-driver實現mysql增刪改操作GolangMySql
- 使用express+mongoose對mongodb實現增刪改查操作ExpressMongoDB
- MongoDB增刪改查操作MongoDB
- 是否應該在未選中行時禁用刪除按鈕,還是應該在點選按鈕時提示選擇資料?
- abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之增刪改檢視(八)UI
- BDC錄屏該程式後 最後按儲存按鈕卻無法執行
- SpringMVC+Spring Data JPA實現增刪改查操作SpringMVC
- PHP操作MongoDB(增刪改查)PHPMongoDB
- mybatis中的增刪改操作MyBatis
- 儲存系統實現-如何刪除資料
- JavaScript點選按鈕刪除一個div元素JavaScript
- 用屬性動畫實現一個確認按鈕動畫
- 運用layui實現增刪改查UI
- js實現表格的增刪改查JS
- JSP實現servlet對資料庫的增刪查改操作JSServlet資料庫
- kindeditor 圖片管理增加刪除操作按鈕
- 如何使用angularjs實現按鈕事件AngularJS事件
- JqueryUI實戰操作 按鈕篇jQueryUI
- ReactiveCocoa 實現 按鈕倒數計時React
- Windows 8.1的“開始按鈕”應該怎麼改Windows
- mysql資料增刪改查操作MySql
- MySQL基礎操作(增刪改查)MySql
- JS字串操作之增刪改查JS字串
- 主從表,增,刪,改操作時產生的鎖演示
- 一個Form中2個按鈕,PHP後臺如何判斷提交的是哪一個按鈕ORMPHP
- 用CSS Houdini實現一個Material風格的按鈕CSS