一個“儲存”按鈕同時存在“增刪改”三種操作,該如何去實現?
稿件來源: 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java實現簡單的增刪改查操作Java
- 第一個mybatis程式,實現增刪改查CRUDMyBatis
- 寫一個簡單的Linkedlist,實現增刪改查
- SpringMVC+Spring Data JPA實現增刪改查操作SpringMVC
- Golang中map的三種宣告方式和簡單實現增刪改查Golang
- 是否應該在未選中行時禁用刪除按鈕,還是應該在點選按鈕時提示選擇資料?
- 使用express+mongoose對mongodb實現增刪改查操作ExpressMongoDB
- golang使用go-sql-driver實現mysql增刪改操作GolangMySql
- MongoDB增刪改查操作MongoDB
- abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之增刪改檢視(八)UI
- ReactiveCocoa 實現 按鈕倒數計時React
- JSP實現servlet對資料庫的增刪查改操作JSServlet資料庫
- kindeditor 圖片管理增加刪除操作按鈕
- mybatis中的增刪改操作MyBatis
- PHP操作MongoDB(增刪改查)PHPMongoDB
- fastadmin 工具欄新增自定義按鈕,實現彈窗並儲存資料效果AST
- js實現表格的增刪改查JS
- 運用layui實現增刪改查UI
- 使用SVG實現的一個Android播放/暫停按鈕SVGAndroid
- 用CSS Houdini實現一個Material風格的按鈕CSS
- 點選一個按鈕使其樣式發生變化,再點選另一個按鈕發生同樣變化,但上一個按鈕樣式復原
- 短視訊系統,長按側滑實現刪除的按鈕
- MySQL基礎操作(增刪改查)MySql
- mysql資料增刪改查操作MySql
- JS字串操作之增刪改查JS字串
- JavaScript新增一個文字框並帶有刪除按鈕JavaScript
- 單連結串列實現增刪改查
- Go實現對MySQL的增刪改查GoMySql
- Qt實現一個支援QSS的Switch Button(開關按鈕)QT
- VBA命令按鈕操作
- PPT儲存時出現“連同字型儲存”彈窗的解決方法
- jquery基本操作增刪改查有哪些?jQuery
- JavaAPI操作MongoDB--基本增刪改查JavaAPIMongoDB
- Mapper三種形式、工具類以及簡單的增刪改查APP
- Go微服務框架go-kratos實戰03:使用 gorm 實現增刪改查操作Go微服務框架ORM
- Js Jquery 實現的按鈕倒數計時整理JSjQuery
- JavaFx 實現按鈕防抖Java
- SVG 和 CSS3 實現一個超酷愛心 Like 按鈕SVGCSSS3