拖拽排序實現方案 的資料庫設計以及思路

2021-09-24 12:49:24 字數 1022 閱讀 9578

拖拽排序實現方案

增加欄位的方法

​ 增加排序欄位sort sort=1 ,資料量少的情況下採用 陣列形式統一傳入後端,後端根據前端傳入的陣列序列進行迴圈重排

取中值法

​ 大體上可以理解未sort 公升級版本,給預設第一位賦值 pos 較大引數1000 第二位就是2000

鍊錶形式結構的方案:

​ 例如:

a1000

b2000

c3000

d4000

如果有 新資料 f 想插入a 之前 則 取 (1000+0) /2 =500 位置 即排序 500 1000 2000 3000 4000 模擬最後想插入d之後的位置

如果c想插入 b位置 則 取b位置 2000 和b 前一位 c=(2000+1000)/2=1500 排序 b 對應位置不變

3 .單錶單列模式法

元素有下標

case1:增加 新元素 abcdef (123456) 增加新元素就是資料總量:count(array)+1=7

case2:刪除元素d =>4 將大於4的全減一 變成 123 (5-1)(6-1)(7-1)

case3:修改元素順序(最常見的拖拽情況)當 e(5)想移動到c(3)之前時候,

​ if(e<c) 後面資料往前移動 將兩個(5到3)範圍內全減一 即 123(3+1)(4+1)

​ 前面的資料往後移動 (3到5)12(4-1)(5-1)56

根據真實情況來看目前1 適用於資料分類較少的一些組織,b分類採用鍊錶結構查詢速度可能受到一部分影響

第三種方案 :採用偏移量方案:offset 大的往小的方向移動 為正數 小的往大的方向移動 為負數 offset代表偏移量大小 偏移量為2 指的是向前移動兩位 則 被擠掉的位置需要 依次加一(xy之間)

​ 偏移量為-2 指的是向後兩位 則(xy)被擠掉的位置 xy之間依次減一

拖拽資料庫設計方案小結

對於公告或者選單或者帖子通常會有拖拽排序的需求,這個時候資料庫設計呢。本文就來簡述一下幾個方案。方案概述 優點缺點 存json 對於每次排序,涉及影響的列表作為乙個大json重新更新 省事列表太大的話,每次更新太多不好 每次更新受影響記錄的排序字段 假設有個position欄位,每拖拽其中一條記錄,...

資料庫表的設計方案

1 一對多或者多對一的物件在資料庫裡面如何設定表來儲存資料原理解說當在程式中物件的關係為1對多或者多對1的關係時,在資料庫裡面我們怎樣設計表來儲存資料呢?1 首先分別設計兩個表來儲存兩個物件的基本屬性,不用管他們之間的關係 2 然後再在多的物件的表裡面設定外來鍵來描述兩個表之間資料的關係即可滿足需求...

資料庫優化設計方案

本文首先討論了基於第三正規化的資料庫表的基本設計,著重論述了建立主鍵和索引的策略和方案,然後從資料庫表 的擴充套件設計和庫表物件的放置等角度概述了資料庫管理系統的優化方案。1 引言 資料庫優化的目標無非是避免磁碟i o瓶頸 減少cpu利用率和減少資源競爭。為了便於讀者閱讀和理解,筆者參閱了sybas...