我们在设计数据库的时候,是否会突破常规,找到最适合自己需求的设计方案,下面来举个例子:

 

   常用的邻接表设计,都会添加 一个 parent_id 字段,比如区域表(国、省、市、区):

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

 

name:地域的名称, parent_id 是父ID,省的父ID是国,市的父ID 为省,以此类推。

type 是区域的阶级: 1:国,2:省,3:市,4:区

在层级比较确定的情况下,这么设计表格没有什么问题,调用起来也很方便。

 

但是使用这种邻接表设计方式,并不能满足所有的需求,当我们不确定层级的情况下,假设我有下面一个评论结构:

平面设计培训,网页设计培训,美工培训,游戏开发,动画培训

 

    用邻接表记录这个评论的数据(comments 表):

 

网友评论

comment_idparent_idauthorcomment
10小明我不大认同这个观点
21小张我也不认同