我們?cè)谠O(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候,是否會(huì)突破常規(guī),找到最適合自己需求的設(shè)計(jì)方案,下面來(lái)舉個(gè)例子:

 

   常用的鄰接表設(shè)計(jì),都會(huì)添加 一個(gè) parent_id 字段,比如區(qū)域表(國(guó)、省、市、區(qū)):

CREATE TABLE Area ([id] [int]  NOT NULL,[name] [nvarchar]  (50) NULL,[parent_id] [int]  NULL,[type] [int]  NULL );

 

name:地域的名稱(chēng), parent_id 是父ID,省的父ID是國(guó),市的父ID 為省,以此類(lèi)推。

type 是區(qū)域的階級(jí): 1:國(guó),2:省,3:市,4:區(qū)

在層級(jí)比較確定的情況下,這么設(shè)計(jì)表格沒(méi)有什么問(wèn)題,調(diào)用起來(lái)也很方便。

 

但是使用這種鄰接表設(shè)計(jì)方式,并不能滿足所有的需求,當(dāng)我們不確定層級(jí)的情況下,假設(shè)我有下面一個(gè)評(píng)論結(jié)構(gòu):

平面設(shè)計(jì)培訓(xùn),網(wǎng)頁(yè)設(shè)計(jì)培訓(xùn),美工培訓(xùn),游戲開(kāi)發(fā),動(dòng)畫(huà)培訓(xùn)

 

    用鄰接表記錄這個(gè)評(píng)論的數(shù)據(jù)(comments 表):

 

網(wǎng)友評(píng)論

  • comment_idparent_idauthorcomment
    10小明我不大認(rèn)同這個(gè)觀點(diǎn)
    21小張我也不認(rèn)同