Relational Migratorでデータをモデル化するには、 MongoDBスキーマを設計し、 マッピング ルール を作成します。マッピング ルールは、関係テーブルの列をMongoDBドキュメントにマッピングする方法を指定します。有効なリレーショナルデータベース接続文字列と認証情報を提供したら、プロジェクト内にマッピング ルールを作成できます。
MongoDB スキーマ設計パターン
MongoDB のスキーマ設計パターンは、データの整理方法を形成します。 スキーマ設計を適切に行うことで、データの効率的なストレージ、取得、操作が可能になります。 これらの設計上の決定は、MongoDB 配置のパフォーマンスとスケーラビリティを向上させるのに役立ちます。 Relational Migrator を使用すると、複数のテーブルを単一のコレクションに結合したり、ドキュメントにデータを埋め込みたりするなど、スキーマ設計に関する重要な決定を行うことができます。
スキーマ設計のベストプラクティスの概要については、次のドキュメントを検討してください。
詳細
関係
マッピング ルールは、テーブルとコレクション間の one-to-one
、 one-to-many
、またはmany-to-many
の関係を定義するのに役立ちます。
次の構成のマッピング ルールを定義できます。
単一の MongoDB コレクションにマッピングする単一のテーブル。
複数の MongoDB コレクションにマッピングする単一のテーブル。
1 つのコレクションにマッピングする複数のテーブル。
デフォルト ルール
Relational Migrator は、ソーステーブルごとに 新しいドキュメント マッピング ルールを自動的に作成します。この初期ルールでは、リレーショナルデータベースと同一のMongoDBスキーマが生成されます。データ移行ジョブを実行中前に、初期ルールを編集できます。
データ型の検出
Relational Migrator は、各ソース列に最適な MongoDB データ型を自動的に選択します。
例、text
、varchar
、nvarchar
、または char
タイプのSQL Server ソースデータは、 MongoDB string
データ型になります。
マッピング方向の優先順位
マッピング ルールは、ソースリレーショナル モデルまたは宛先MongoDB モデルに基づいて作成できます。
マッピング ルールを作成するときにMongoDBモデルを変更できますが、 Relational Migrator はリレーショナルモデルを静的かつ変化なしとして扱います。リレーショナルデータベースのスキーマが変更された場合は、関係モデルを更新する必要があります。詳細については、リレーショナル モデルの管理 を参照してください。
行マッピング オプション
次の Migrate as
オプションを使用してマッピングルールを定義できます。
オプション | 動作 |
---|---|
関係データベースの各行を新しいドキュメントに変換します。 | |
外部キー関係によって識別される親ドキュメント内の各行を配列要素に変換します。 | |
各行を、外部キー関係によって識別される子ドキュメント内のフィールドのセットまたは埋め込みオブジェクトとして変換します。 |
カスタムフィールドとフィルター
カスタム フィールド を使用してマッピング ルールを作成できます。Relational Migratorでは、関係テーブルから移行されるデータを制限するテーブル フィルターもサポートされています。
合成外部キーの手動追加
データベースに外部キーの制約がない場合は、合成外部キーとして外部キーを手動で追加できます。Relational Migrator がソース リレーショナル データをMongoDBコレクションに変換するときに、すべての外部キーはMongoDBドキュメント参照に変換されます。詳細については、「 合成外部キー 」を参照してください。
マッピングルールのプレビュー
マッピング ルールがデータモデルにどのように影響するかは、MongoDB 図ペインにある青いドットボックスを表示することでプレビューできます。 これにより、マッピング ルールを適用する前にプレビューできます。
コレクションエンティティが存在しない場合は、カード全体のプレビュー状態で図に追加されます。
コレクション エンティティがすでに存在する場合、埋め込みマッピングが カードに追加され、新しいフィールドの周囲がプレビュー状態になります。
