1

最近 RavenDB を使い始めました。

リレーショナル データベースの従来の例を次に示します。

従業員タイプ

ID:1 タイプ:開発 ID:2 タイプ:QA

従業員

名前:フレッド タイプID:1
名前:ジャック タイプID:2

RavenDB について私が理解していることから、タイプは従業員に含まれます。

従業員

名前:フレッド タイプ:開発者
名前:ジャック タイプ:QA

その場合、EmployeeType テーブルが必要になるでしょうか?

そうでない場合、従業員タイプのドロップ ダウン リストを表示する場合、従業員から個別 (タイプ) を選択しますか?

上記を行う場合、新しい従業員を入力する (または既存の従業員を編集する) ことなく、どのようにして新しい従業員タイプを追加しますか? それとも、コード内のどこかにリストを保持しますか?

最後に、従業員タイプのテキストが変更された場合、すべての従業員レコードを更新する必要があるようです。従業員レコードが 100,000 件ある場合はどうなるでしょうか。

私は Raven (ドキュメント データベース) を初めて使用するので、さまざまなパラダイムをよりよく理解するのに役立つ洞察をいただければ幸いです。

4

1 に答える 1

3

その場合、EmployeeType テーブルが必要になるでしょうか?

次の質問の要件を満たす必要があります。また、このタイプの参照データは、ドキュメント コレクションではなく、単一のドキュメントに格納できます。データベースをすべてバイパスして、ハードコードされたリストを維持することもできます。

そうでない場合、従業員タイプのドロップ ダウン リストを表示する場合、従業員から個別 (タイプ) を選択しますか?

いいえ。従業員タイプのドキュメントから選択してください。従業員テーブルから個別を選択すると、利用可能な従業員の種類ではなく、記録されている従業員の種類がわかります。

最後に、従業員タイプのテキストが変更された場合、すべての従業員レコードを更新する必要があるようです。従業員レコードが 100,000 件ある場合はどうなるでしょうか。

リレーショナル データベースとドキュメント データベースの間の事実上のトレードオフに直面しています。いくつかのオプションがあります。従業員タイプのドキュメント コレクションを指す ID によって、従業員ドキュメントから従業員タイプを参照できます。このように、従業員タイプ名を 1 か所で変更できます。ただし、トレードオフは、タイプを持つ従業員を返すために RavenDB がその 2 つのドキュメントを含める (結合する) 必要があることです。別の方法として、従業員タイプ ID を使用せずにタイプを従業員ドキュメントに直接保存し、名前を変更する必要がある場合は、すべてのドキュメントで更新を実行します。RavenDB ドキュメントからこちらをご覧ください。

于 2012-11-27T18:39:31.517 に答える