什么数据库可以存储树



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

我需要能够索引孩子以及。我需要它很容易将分支从一个节点移动到另一个节点,并快速读取+格式。

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

如果树非常深,关系数据库将不是最好的选择。我建议使用图形或对象数据库。

"存储评论"?喜欢那些博客或文章吗?如果是这样的话,我想说,你可以假设它们不会那么深。十层评论树将是例外。

在这种情况下,使用外键的简单关系父/子关系就足够了:
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
);

当然,"关系数据库"强调的是"表"(二维关系)。

在RDBMS供应商中,有许多不同的替代方案。例如,DB2有"分层结构",Oracle有"分层查询":
  • http://www.ibm.com/developerworks/data/library/techarticle/dm - 0506 melnyk/

  • http://www.orafaq.com/node/2038

一般来说,大多数主要的RDBMS产品(MS Sql Server, IBM DB2, Oracle)都支持xml。这提供了一种更健壮、可移植的方法来操作结构化数据。

当然,在非rdbms供应商中,有更多的替代方法来处理非关系数据(如树)。相应地,可移植性也较差——将自己锁定在一个"非sql数据库"中往往会使您无法轻松地将应用程序迁移到另一个数据库。

LINE:

如果您可以在关系数据库中使用XML,那么这可能是您的最佳选择。以下是一些不错的链接:
  • http://troels.arvin.dk/db/rdbms/links/分层

  • http://www.techrepublic.com/article/shred-xml-data-with-xquery-in-sql-server-2005/6140404
  • http://docs.oracle.com/cd/B19306_01/appdev.102/b14259/xdb_xquery.htm
  • http://www.redbooks.ibm.com/abstracts/sg247298.html

希望这对你有帮助!

相关内容

  • 没有找到相关文章

最新更新