在程式開發中,我們常遇到用樹型結構來表示某些資料間的關係,如企業的組織架構、商品的分類、操作欄目等,目前的關係型資料庫都是以二維表的形式記錄儲存資料,而樹型結構的資料如需存入二維表就必須進行schema設計。
adjacency list(鄰接列表模式)
簡單的說是根據節點之間的繼承關係,顯現的描述某一節點的父節點,從而建立二位的關係表。
表結構通常設計為,如下圖:
優點:結構簡單易懂,由於互相之間的關係只由乙個parent_id維護,所以增刪改都是非常容易,只需要改動和他直接相關的記錄就可以。
缺點:由於直接地記錄了節點之間的繼承關係,因此對tree的任何crud操作都將是低效的,這主要歸根於頻繁的「遞迴」操作,遞迴過程不斷地訪問資料庫,每次資料庫io都會有時間開銷。
鄰接表來儲存資料
includeusing namespace std 使用鄰接表來儲存圖,把m遠小於n 2的圖稱為稀疏圖 適合稀疏圖,可以把時間複雜度優化到o m n logn define maxn 9999 int n,m int u maxn v maxn w maxn first要比n大1,next要比n大...
Android資料儲存方案
android這個系統和其他的作業系統還不太一樣,我們需要記住的是,資料在android當中是私有的,當然這些資料報括檔案資料和資料庫資料以及一些其他型別的資料。那這個時候有讀者就會提出問題,難道兩個程式之間就沒有辦法對於資料進行交換?android這麼優秀的系統不會讓這種情況發生的。解決這個問題主...
Android資料儲存方案 檔案儲存
android中,檔案儲存方案也比較簡單,一般使用 fileoutputstream bufferedwriter寫入檔案,使用fileinputstream bufferedreader讀出檔案內容。不過,檔案是存放在 data data com.test files 資料夾下面。下面,我們看看示...