sql >> データベース >  >> NoSQL >> MongoDB

Key-Valueデータストアへのディレクトリ階層の保存

    現在使用している方法は隣接リストモデルと呼ばれています。

    階層データを(リレーショナル)データベースに格納する別のモデルは、入れ子集合モデルです。 SQLデータベースでの実装はよく知られています。変更されたプレオーダーツリートラバーサルアルゴリズムについては、この記事も参照してください。

    非常に単純な方法:オブジェクトごとにパスを格納できます。パスを使用すると、NOSQLデータベースのツリーを簡単に照会できるはずです:

    { path: "Color", ... }
    { path: "Color.Red", ... }
    { path: "Color.Red.Apple", ... }
    { path: "Color.Red.Cherry", ... }
    

    ノードが削除または名前変更される場合、一部のパスを更新する必要があります。しかし、一般的に、この方法は有望に見えます。区切り文字として特殊文字を予約する必要があります。ストレージスペースのオーバーヘッドはごくわずかである必要があります。

    編集:このメソッドはマテリアライズドパスと呼ばれます

    最後に、NOSQLデータベースの階層データのさまざまな方法の比較を示します。



    1. SpringdatamongoはクエリでORを使用します

    2. WindowsでMongoDBに接続するにはどうすればよいですか?

    3. MongoDBのcount()とfind()。count()の違い

    4. RedisVueデスクトップ