2011-12-17 4 views
1

アンチパターンなどを使わずにツリー構造(ネストされたコメントのような)を格納できるDBはありますか?
LDAPは1つだと思いますが、他にもありますか?どのデータベースにツリーを格納できますか?

私は子供にもインデックスを付けることができる必要があります。あるノードから別のノードにブランチを移動させ、読み込み+書式を速くすることが簡単に必要です。

私は他の同様の質問を見ました。これらの問題(私にとっては)は、どのDBを使用すべきか尋ねるうちに、db XXXで最も効率的な方法を教えています。

+0

ほとんどのドキュメントデータベースはこれに対応していませんか?代わりに、グラフデータベースを見てください – Oded

+0

@Oded - 今日私はMongoDBを研究しました、それはないと思われますhttp://stackoverflow.com/questions/8547886/can-a-mongodb-collection-have-inside-it-another-collection I他の人が同じであると仮定します。もしあなたがそれを知っていれば、その名前を投稿してください。 –

+0

RavenDBとNeo4Jを見てください。私は「反パターンやそのようなものを使わない」というのは、非常に抽象的であることを意味していません。 – Oded

答えて

0

ツリーが非常に深い場合、リレーショナルデータベースはこれには最適ではありません。グラフやオブジェクトデータベースをお勧めします。

「コメントを保存していますか?次のブログや記事のように?そうだとすれば、それほど深刻ではないと思います。 10レベルのコメントツリーは例外的です。

その場合には、外部キーを使用して、単純なリレーショナル親/子関係が十分であろう:

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 
); 
+0

:-Dそれをチェックしてください。http://www.tapuz.co.il/Forums2008/ViewMsg.aspx?ForumId=308&MessageId=157872690 10に制限されたことを願います。これは、多くの中から1つのメインポストです... –

+0

リレーショナルデータベースが機能しないことはご存じですか?それができなくなるまで試してから、グラフデータベースのようなものに切り替えてください。 XMLも階層的です。 – duffymo

+0

それは動作します、ちょうどそれが遅すぎます。 –

0

「リレーショナルデータベース」はもちろん、「テーブル」(2-Dの関係)を重視しています。

RDBMSベンダーの中には、さまざまな選択肢があります。主要なRDBMS製品のほとんど(MSを

より一般的には、たとえば、DB2は、 "階層構造" を持っている、とOracleは、 "階層問合せ" ありSql Server、IBM DB2、Oracle)はすべてXML対応になっています。これにより、構造化データを操作するための、より強固でポータブルなアプローチが提供されます。

もちろん、非RDBMSベンダーの中には、非リレーショナルデータ(ツリーなど)を扱うための代替手段があります。これに対応して、ポータビリティが低下します。アプリケーションを別のデータベースに簡単に移行することを妨げないように、自分自身を1つの「非SQLデータベース」にロックすることがよくあります。

BOTTOM LINE:

あなたリレーショナルデータベースとの使用XMLであれば、それはおそらくあなたの最良の選択肢です。ここではいくつかの良いリンクです:

「ホープこと助けて!

関連する問題