国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 青阳县| 毕节市| 德江县| 太仓市| 广宗县| 渑池县| 沁水县| 虞城县| 阳东县| 黑水县| 南华县| 米脂县| 元朗区| 苗栗市| 洛宁县| 遂川县| 南平市| 上犹县| 连江县| 武乡县| 上蔡县| 筠连县| 交口县| 莒南县| 陵水| 东乌珠穆沁旗| 岳阳县| 卢龙县| 铁力市| 闵行区| 高淳县| 常山县| 阜平县| 任丘市| 荣昌县| 京山县| 隆安县| 永寿县| 达尔| 庆阳市| 平谷区|