国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

樹形結(jié)構(gòu)的數(shù)據(jù)庫的存儲(chǔ)

2019-11-14 14:33:53
字體:
供稿:網(wǎng)友

      程序設(shè)計(jì)過程中,我們常常用樹形結(jié)構(gòu)來表征某些數(shù)據(jù)的關(guān)聯(lián)關(guān)系,如企業(yè)上下級(jí)部門、欄目結(jié)構(gòu)、商品分類等等,通常而言,這些樹狀結(jié)構(gòu)需要借助于數(shù)據(jù)庫完成持久化。理想中樹形結(jié)構(gòu)應(yīng)該具備如下特征:數(shù)據(jù)存儲(chǔ)冗余度小、直觀性強(qiáng);檢索遍歷過程簡單高效;節(jié)點(diǎn)增刪改查CRUD操作高效。

      列舉了一個(gè)食品族譜的例子進(jìn)行講解,通過類別、顏色和品種組織食品,樹形結(jié)構(gòu)圖如下:

       1,對(duì)樹形結(jié)構(gòu)最直觀的分析莫過于節(jié)點(diǎn)之間的繼承關(guān)系上,通過顯示地描述某一節(jié)點(diǎn)的父節(jié)點(diǎn),從而能夠建立二維的關(guān)系表,則這種方案的Tree表結(jié)構(gòu)通常設(shè)計(jì)為:{Node_id,Parent_id}
 
      2,在基于數(shù)據(jù)庫的一般應(yīng)用中,查詢的需求總要大于刪除和修改。為了避免對(duì)于樹形結(jié)構(gòu)查詢時(shí)的“遞歸”過程,基于Tree的前序遍歷設(shè)計(jì)一種全新的無遞歸查詢、無限分組的左右值編碼方案,來保存該樹的數(shù)據(jù)。
      至于上述兩種方法的具體介紹和實(shí)現(xiàn)以及優(yōu)缺參考:樹形結(jié)構(gòu)的數(shù)據(jù)庫表Schema設(shè)計(jì)。
      其實(shí)我們最重要的數(shù)據(jù)是這個(gè)樣子的:
      {Catagory:"Food",FoodCategory:"Fruit",color:"Red",Name:"Cherry"}
      {Catagory:"Food",FoodCategory:"Fruit",color:"Yellow",Name:"Banana"}
      {Catagory:"Food",FoodCategory:"Meat",Name:"Beef"}
      {Catagory:"Food",FoodCategory:"Meat",Name:"Pork"}
      ……
      其實(shí)我覺得這種關(guān)系型數(shù)據(jù)庫可以用MongoDb來存儲(chǔ)(Json的數(shù)據(jù)格式),這樣用非關(guān)系數(shù)據(jù)庫的思想解決這個(gè)問題豈不是更好?這種可以不通過遞歸過程不斷地訪問數(shù)據(jù)庫,每次數(shù)據(jù)庫IO都會(huì)有時(shí)間開銷;也避免了第二種節(jié)點(diǎn)的添加、刪除及修改代價(jià)較大,將會(huì)涉及到表中多方面數(shù)據(jù)的改動(dòng)。是不是萌萌噠?一家之言,歡迎拍磚!
 
 
 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鄂尔多斯市| 蒙阴县| 开化县| 宁强县| 荆州市| 玉林市| 彰化市| 安吉县| 南安市| 乐山市| 桃园县| 班玛县| 和顺县| 乐陵市| 靖江市| 诏安县| 石林| 荔波县| 贵港市| 明溪县| 汾西县| 松桃| 望城县| 南和县| 隆安县| 尼木县| 仙居县| 常山县| 寻乌县| 新田县| 内江市| 昌乐县| 濮阳县| 化隆| 湟源县| 红原县| 盐亭县| 翼城县| 黎川县| 海安县| 修武县|