図を理解する
このページでは、Relational Migrator で作成された図を解釈する方法について説明します。 各図は 2 つのビューで構成されており、1 つはリレーショナルデータベース用で、もう 1 つは MongoDB database 用です。 ビューには、データベース内のエンティティ間の関係が表示されます。
リレーショナルビュー
リレーショナル ビューでは、各ボックスは関係データベース内のテーブルを表します。 ボックスのタイトルは、テーブル名を示します。
各ボックスには、対応する表の列が一覧表示されます。 各列の ボックスは列名とそのデータ型を示します。
一部の列には、テーブル内でのロールを示すためのアイコンがあります。
キー アイコンは、テーブルのプライマリキーを示します。
リンク アイコンは外部キーを示します。
MongoDB ビュー
MongoDB ビューでは、各ボックスは MongoDB database 内のコレクションを表します。 ボックスのタイトルは、コレクション名を示します。
各ボックスには、対応するコレクション内のフィールドが一覧表示されます。 各フィールドの ボックスは、フィールド名とそのデータ型を示します。
コレクションに埋め込みドキュメントまたは配列が含まれている場合、それらのフィールドは同じコレクションにインラインで表示されます。
一部のフィールドには、テーブル内でのロールを示すアイコンがあります。
キー アイコンは、コレクションの
_id
フィールドを示します。wrapped
キー処理戦略を使用する場合、_id
フィールドにはサブフィールドが含まれます。 この場合、 ボックスには 1 つのフィールドに適用される複数のキー アイコンが含まれています。リンク アイコンは、フィールドが外部キーで使用される関係列にマップされていることを示します。
表示モードを選択する
Relational Migrator には、水平分割、垂直分割、関係ビュー、MongoDB ビューなどのさまざまな図表示モードがあります。
表示モード | 説明 |
---|---|
水平分割 | リレーショナル ビューが上部に、MongoDB ビューが下に表示されます。 新しいプロジェクトを作成する場合、水平分割がデフォルトのビュー モードになります。 |
垂直分割 | 左側にリレーショナル ビューを表示し、右側に MongoDB ビューを表示します。 |
リレーショナルビュー | リレーショナルデータベース図のみを表示。 |
MongoDB ビュー | MongoDB database の図のみを表示します。 |
表示モードを切り替えるには、左側のナビゲーションバーにある表示モードのオプションをクリックします。
色コード
図内のエンティティは、リレーショナルデータベースまたは MongoDB database のどちらを表すかに基づいて、色付けされています。
関係テーブルがあるエンティティは関係テーブルです。
緑色の強調表示があるエンティティは MongoDB コレクションです。
Entity Links
ボックス間の行は、データベース エンティティを接続する関係を表します。 2 つのボックスが接続されている場合、対応するエンティティは外部キーにリンクされます。 行には、次の関係の機能が表示される場合があります。
関係リンク全体の小さなバーは、エンティティ間の 1 対 1 の関係を示します。
prolong (または「のように」)は、関係内の「多」を示します。
図のアクションを取り消すまたは再実行
Relational Migrator 図は undo と red 関数をサポートします。 前の図アクションを元に戻すか再適用するには、 undo または red 機能を使用します。 これらのアクションを実行するには、図ツールバーまたはキーボード ショートカットのいずれかを使用できます。
ツールバー
を使用できますおよび図のツールバーのボタン:
キーボード ショートカット
あるいは、キーボード ショートカットを使用することもできます。
関数 | Windows ショートカット | Mac ショートカット |
---|---|---|
Undo | Control + Z | Command + Z |
Redo | Control + Y | Command + Y |
リレーショナル リンクと MongoDB View リンク
リレーショナル ビューまたは MongoDB ビューのいずれかでボックスをクリックすると、Relational Migrator は逆のビューで対応するエンティティを強調表示します。 これにより、関係テーブルと MongoDB コレクションが互いにどのようにマッピングされるかを確認できます。
例
次の例は、店舗の注文を追跡するデータベースのサンプル図です。
リレーショナルビュー
このリレーショナルビューは、関係データベース内の複数のテーブルの関係を示しています。
ビューには、次の関係が表示されます。
Order
テーブルでは、OrderID
はプライマリキーです。CustomerID
とOrderStatusID
は外部キーです。Customer
テーブルとOrderStatus
テーブルには、それぞれこれらの外部キーの参照が含まれています。Order
Customer
とOrder
からOrderStatus
への関係はどちらも多対 1 の関係です。カスタマーは複数の注文を持つことができますが、各注文は 1 人のカスタマーにのみ適用されます。 この例では、注文は親であり、顧客は子です。
注文ステータスは複数の注文に適用できます。各注文の注文ステータスは 1 つだけです。 この例では、 Order が親で、 OrderStatus が子です。
OrderLine
テーブルでは、OrderLineID
はプライマリキーです。OrderID
とProductID
は外部キーです。Order
テーブルとProduct
テーブルには、それぞれこれらの外部キーの参照が含まれています。OrderLine
Order
とOrderLine
からProduct
への関係はどちらも多対 1 の関係です。注文行は、注文内の個々のトランザクションです。 注文には複数の注文行を含めることができ、各注文行は 1 つの注文に適用されます。 この例では、 OrderLine が親で、 Order が子です。
製品は複数の注文行に適用でき、各注文行には 1 つの製品が含まれます。 この例では、 OrderLine が親であり、 Product が子です。
MongoDB ビュー
この MongoDB ビューは、前のリレーショナル ビューに対応します。
ビューに表示されるコレクションとデータ型は、プロジェクトに指定されたマッピング ルールを反映しています。
リンク アイコンは、外部キーで使用される関係列にマップされるフィールドを示します。 たとえば、Order
コレクションでは、OrderStatusID
フィールドはOrder
テーブルとOrderStatus
テーブルをリンクする外部キーを表します。
新しいマッピングルール
MongoDB の埋め込みデータモデルをより有効に利用するために、次の新しいマッピングルールが作成されています。
Order
コレクションには、OrderLines
を埋め込み配列としてマッピングするルールが含まれています。 リレーショナルスキーマのOrderLine
テーブルは、リレーショナルスキーマの外部キー関係を使用して、Order
ドキュメント内のオブジェクトの配列としてマッピングされます。Customer
コレクションには、Orders
を埋め込み配列としてマッピングするルールが含まれています。 リレーショナル スキーマのOrder
テーブルは、リレーショナル スキーマの外部キー関係を使用して、Customer
ドキュメント内のオブジェクトの配列としてマッピングされます。
上記のマッピング ルールはどちらも、マッピングから ID フィールドを削除します。 OrderLines
フィールドとOrders
フィールドは外部キーで参照されるのではなく、親フィールドに埋め込まれているため、フィールドをリンクするために ID フィールドは必要ありません。