エンティティの結合

この機能によって、2 つのエンティティを 1 つのエンティティに結合できます。同じ対象を表す 2 つのエンティティがモデルに含まれる場合、それらのエンティティとそれぞれのデータを 1 つのエンティティに結合できます。「エンティティの分割」の最終結果を使って、Jim Waterman のエンティティを結合してみましょう。Jim Waterman は、そのモデルに Marcus David の管理者としてのエンティティと、Tom Smith の従業員としてのエンティティの 2 つのエンティティを持ちます。

2 つのエンティティを 1 つに結合するだけでなく、新しい単一のエンティティにどのプロパティと関連性を結び付けるか、つまり、全部か、一部か、あるいは何も結び付けないかを決定することもできます。

  1. 既存のモデルを開いた状態で、結合したい 2 つのエンティティを選択します。そのためには、2 つのエンティティをクリックしてドラッグする、すなわち 1 つのエンティティをクリックしてから、2 つめのエンティティを Ctrl キーを押しながらクリックします。
  2. [編集中] リボンの [結合] ボタンをクリックするか、右クリックして、[エンティティの結合] を選択します。[エンティティの結合] ダイアログ ボックスが表示されます。元のエンティティ 1 が左側に、元のエンティティ 2 が右側に、新しいエンティティが中央にあります。
  3. 新しいエンティティのラベルを変更したい場合は、[ラベル] フィールドに新しい名前を入力します。この例では、ラベルは "3" のままにします。従業員 ID を使うと、モデル内の他のエンティティと整合性がとれるからです。
  4. 新しいエンティティのタイプを変更したい場合は、[タイプ] フィールドを使用します。この例では、タイプは "Employee" のままにします。
  5. プロパティをクリックし、[プロパティ] フィールドでエンティティ間にある青い矢印を使用して、新しいエンティティに結び付けるプロパティを決定します。この例では、新しいエンティティの "name" プロパティと "title" プロパティはそのままにします。モデル内のその他のエンティティと整合性がとれているからです。これらのプロパティのデータは、2 つのエンティティで同じ (それぞれ "Jim Waterman" と "Support Manager") なので、どちらからでも引き出すことができます。プロパティを新しいエンティティに追加すると、プロパティの取得元のエンティティを示す [1] または [2] が前に付くことに注意してください。

    各プロパティ名は一意でなければなりません。したがって、名前は同じでもデータが異なる 2 つのプロパティを結合する場合は、プロパティをクリックし、緑色の矢印をクリックして [詳細プロパティ マッピング] ダイアログ ボックスを開き、デフォルトの新しい名前 ("name2" のようにプロパティ名の終わりに番号が付加される) を受け入れるか、新しい名前を入力して、どちらかのエンティティのプロパティ名を変更する必要があります。

    例えば、組織図モデルにエンティティごとの開始日が含まれる場合、元のエンティティ 1 (従業員の役割) の開始日が 04/20/2000 で、元のエンティティ 2 (管理者の役割) の開始日が 08/15/2004 であるとします。結合エンティティに両方の開始日を含める場合は、元のエンティティ 1 の "start_date" をクリックし、緑色の矢印をクリックして、"start_date2" を受け入れるか、[新しい名前] フィールドに "original start date" と入力します。

  6. 関連性をクリックし、[関連性] フィールドでエンティティ間にある青い矢印を使用して、各エンティティに結び付ける関連性を決定します。この例では、両方の "Reports_To" 関連性を維持します。これらは Jim の従業員としての関連性と管理者としての関連性を表しているからです。関連性を新しいエンティティに追加すると、その関連性の取得元のエンティティを示す [1] または [2] が前に付くことに注意してください。

    プロパティと異なり、関連性ごとに一意の名前は必要ありません。2 つの関連性を 1 つの新しい関連性に結合するには、関連性をクリックし、緑色の矢印をクリックして [詳細関連性マッピング] ダイアログ ボックスを開き、[ラベル] フィールドと [ユニーク ID] フィールドはそのままにして、[OK] を押します。2 つの関連性を 1 つに結合すると、その関連性が両方の元のエンティティから取得されたものであることを表す "[1,2]" が前に付きます。

    2 つの関連性を同じ名前で保持したければ、関連性をクリックし、緑色の矢印をクリックして [詳細関連性マッピング] ダイアログ ボックスを開き、[ユニーク ID] フィールドに何か入力して、どちらかのエンティティの関連性の名前を変更する必要があります。その後で、関連性にプロパティが関連付けられている場合は、左側および右側の関連性から新しい関連性に引き継ぐプロパティも決定する必要があります。

    例えば、組織図モデルで名前と従業員番号の代わりに肩書を使用し、従業員の 1 人が "Director" という肩書の 2 人の人物のために働いているとしましょう。"Reports_to_Director" とラベル付けされた 2 つの関連性を結合してもモデル内で一意性を維持するには、どちらかの関連性をクリックし、緑色の矢印をクリックして、[ユニーク ID] フィールドにある種の一意識別子を入力する必要があります。この例では、一意識別子はおそらくディレクター名になります。このアクションをもう一方のディレクターに対しても繰り返すと、エンティティに対する両方の関連性にそれぞれのディレクター名が含まれるようになります。

この例で入力が完了した [エンティティの結合] ダイアログ ボックスは、次のようになります。

この例のモデルが更新され、Jim Waterman のエンティティが 1 つだけになりました。Marcus David エンティティ (Jim の従業員) が Jim Waterman エンティティに入り、Tom Smith エンティティ (Jim の上司) が Jim Waterman エンティティから出ていることがわかるでしょう。