什么数据库可以存储树木?

时间:2011-12-17 22:21:16

标签: database performance tree linked-list store

是否存在可以存储树结构(如嵌套注释)的数据库,而不使用反模式等。
我认为LDAP是一个,但还有其他吗?

我也需要能够为儿童编制索引。我需要它很容易将分支从一个节点移动到另一个节点并快速读取+格式。

我见过其他类似的问题。那些(对我来说)他们问的问题是什么是在db XXX中最有效的方法,而我问我应该使用哪个DB。

2 个答案:

答案 0 :(得分:0)

如果树很深,关系数据库将不是最好的。我推荐一个图形或对象数据库。

“存储评论”?像那些关注博客或文章的人一样?如果是这样的话,我会说你可以假设他们不会那么深。十级评论树将是例外。

在这种情况下,使用外键的简单关系父/子关系就足够了:

CREATE TABLE IF NOT EXISTS article
(
    article_id integer not null auto_increment,
    comment_id integer,
    primary key(article_id),
    constraint fk_comment foreign key(comment_id) references article(article_id) on delete cascade on update cascade
);

答案 1 :(得分:0)

“关系数据库”当然强调“表格”(二维关系)。

在RDBMS供应商中,有许多不同的选择。例如,DB2具有“分层结构”,而Oracle具有“分层查询”:

更一般地说,大多数主要的RDBMS产品(MS Sql Server,IBM DB2,Oracle)都已成为支持XML的。这为处理结构化数据提供了更加健壮,可移植的方法。

当然,在非RDBMS供应商中,处理非关系数据(如树)还有更多选择。相应地,可移植性较低 - 将自己锁定到一个“非SQL数据库”中,这通常会阻止您轻松地将应用程序迁移到另一个数据库。

BOTTOM LINE:

如果可以将XML与关系数据库一起使用,那么这可能是您的最佳选择。以下是一些很好的链接:

'希望有所帮助!