2012-02-10 8 views
4

私たちは、ユーザーがビデオをアップロードできるビデオオンデマンドシステムを開発しています。私たちは、ユーザーがアーティスト/アルバムなどのフォルダを作成し、ビデオを正しいフォルダの下に保存できる、ビデオアーカイブのツリー構造を作成したいと考えています。すべてのツリー構造と同様に、ユーザーはフォルダ間でビデオを移動したり、サブツリーを削除したり、ビデオをコピーしたり、サブツリーや子を移動したりすることができます。ORMを使用して大きなツリー構造をモデル化する必要がありますか?

ツリーには、1000秒間に10秒間のビデオとフォルダが含まれている可能性があります。

私の質問は、このサイズの木のような構造に適していると思いますか? |

フォルダID:

答えて

5

データベースであなたのツリー構造は、いくつかのテーブルのようになるだろうと仮定すると、 ParentFolderId | FolderName

どうしてですか?

ORMを使用するかどうかは疑問ではありませんが、問題はORMが解決する適切なツールであるかどうかです。

+1

現在、私たちはデータをどのように保持するかを決定する必要があります。 ORMの学習は、プロジェクトの時間スケールでは難しいかもしれません。そのテーブル構造では、SQLを手作業で手に入れることができると思いますか? –

+1

"そのテーブル構造では、SQLを手作業で手に入れることができると思いますか?あなたが複雑で大規模なデータ構造を持っていない限り、私が思うところでは、ORMから離れてください。 –

+1

まず、データとビジネスロジックを定義する必要があります。あなたはそれを永続させる方法とそれに簡単にアクセスする方法を考えなければなりません。あなたの使用法がわからないので、私はあなたの質問に答えられません。たとえば、ツリー全体を一度にロードする必要がある場合、ユーザーに属しているすべてのフォルダを取得するために、このテーブルをアクセス許可テーブルに追加するだけです。または、ユーザーがそこをナビゲートするときにのみ次のレベルを読み込む必要がある場合、なぜ「Where(x => x.ParentId = selectedId)」を求めることができないのですか?この目的のために私は完全にORMを使うことができます。それは単純なのでOR ORMではありません。またはSPを書く。 –

関連する問題