0

私はmongodbで馬の血統をモデル化しようとしています。

ここに画像の説明を入力

私はインターネットでいくつかの調査を行い、いくつかの潜在的なアプローチを明らかにしました。

  1. 祖先の配列
  2. グラフ
  3. 単純な関係 {_id: "Cigar", sire: "Palace Music", dam: "Solar Slew", Sire's Sire: ...}
  4. ネストされたセットを持つツリー構造

以下のユースケースを考えると、さまざまなアプローチの両方のトレードオフについて、私よりも経験豊富な人から意見を得たいと思っています。

私のユースケースは次のとおりです。

  • プレゼンテーション: ユーザーが特定の馬を照会するたびに、馬の血統を表示するか、表示するオプションをユーザーに提供したいと考えています。
  • トラバース/クエリ: 血統を (祖先ごとに) 簡単にトラバースまたはクエリして、血統内の特定の馬を返す機能 (つまり、5 回以上のターフ ウィンを持つ 1 頭の子孫を持つすべての繁殖牝馬を返す)
  • パフォーマンス: 系図クエリのパフォーマンスが非常に高いことが不可欠です。
  • 評価: 血統データをレース結果と併せて使用して、血統評価を作成します。強いテキスト
  • 分析: 馬の血統と勝率を分析したいと思います。次のような質問に答えようとします。

    • 初の芝レースで優勝する可能性が高い偉大なグランド サイアーとしてノーザン ダンサーを持つ馬です。
    • イールド ターフ コースで勝者を産んだ上位 10 位のサイアー (ダム、グランド サイアー、グランド ダム) は?

追加情報: MEAN スタックでこのアプリケーションを開発する予定です。

ご意見ありがとうございます。

4

1 に答える 1

0

あなたが持っているデータは、明らかに二分木構造です。各馬はツリー内のノードであり、馬の親を表す 2 つの子ノードがあります (皮肉なことです!)

チュートリアル: MongoDB のモデル ツリー構造。馬の「子供」(馬の母と父) の ID のリストを使用して、各馬 (祖先チェーンの最上部から開始) を挿入できます。

DB クエリ用の特定のコードを提供できるほど MongoDB に精通していないことは認めますが、Mongo は階層的なデータ ストレージが可能なため、ツリーで問題が発生することはほとんどありません。

于 2014-01-03T21:41:26.980 に答える