エンティティに対する複合型エレメントの追加
このタスクについて
データモデルをデザインする際、完全なストラクチャーを持ち、エレメントまたはエンティティによって再利用できる複合型を定義できます。データモデルエディターの[Design] (デザイン)タブをクリックすると、データモデルで作成されたすべての複合型を[Data Model Types] (データモデルタイプ)エリアで確認できます。
複合型はそれぞれ別の複合型のベースとして使用できます。まず、すべての共通エレメントを含む上位レベルの複合型を定義できます。次に、別の複合型を定義して、上位レベルの複合型を拡張してから、順に拡張します。詳細は、データモデルの継承とポリモーフィズムをご覧ください。
複合型を作成した後は、[Data Model Types] (データモデルタイプ)エリアでアップデートでき、アップデートはエレメントを直接使用することで同期されます。
この例では、複合型AddressTypeを定義してからEUAddressTypeおよびUSAddressTypeを定義する方法について説明しています。既存のタイプAddressTypeを拡張することにより、メインのアドレスタイプからエレメントを継承しつつ、特定のエレメントを追加して米国およびEUのアドレスを入力しています。
手順
次のタスク
これで、AddressTypeを拡張して、米国およびEUの住所の継承タイプを定義できるようになりました。この例では、EUAddressTypeではメインのAddressTypeを拡張して郵便番号と国を追加しており、USAddressTypeではメインのAddressTypeを拡張してZIPコードと州を追加しています。
-
[Palette] (パレット)からComplexTypeをクリックし、[Data Model Types] (データモデルタイプ)エリアをクリックします。
ダイアログボックスが表示されます。
-
複合型の名前を入力します。この例では、EUAddressTypeにします。
複合型の名前に、@、#、または-などの特殊文字が含まれていないことを確認します。
-
この例では、リストから拡張する複合型AddressTypeを選択します。
-
OKをクリックします。
AddressTypeを拡張する新しい複合型EUAddressTypeが追加されます。これで、EUAddressTypeに固有のエレメントを追加できるようになりました。
-
[Palette] (パレット)からTypeElementをクリックし、新しいエレメントを追加する複合型の上部をクリックします。
[Create Element] (エレメントの作成)ダイアログボックスが表示されます。
-
新しいエレメントの名前PostalCodeを入力し、[Built-in Type] (組み込みタイプ)のリストからstringを選択して、最大および最小の出現回数を両方とも1に設定します。
-
[Finish] (終了)をクリックします。
-
この手順を繰り返して、別の新しいエレメントCountryを複合型EUAddressTypeに追加します。
-
同じステップに従って、既存のAddressTypeを拡張して別の複合型USAddressTypeを作成します。USAddressTypeにZipCodeとStateという2つの新しいエレメントを追加します。
これでエンティティにエレメントを追加する際に複合型を使用できるようになりました。
以下の例は、データモデルDStarで新しいエンティティRegionが作成されていることを前提としています。ここで複数の新しい複合型エレメントをエンティティに追加します。詳細は、グラフィカルデザイナーを使用してデータモデル内にエンティティを作成をご覧ください。
-
[Palette] (パレット)で[Element] (エレメント)をクリックし、エンティティの上部をクリックします。
[Create Element] (エレメントの作成)ダイアログボックスが表示されます。
-
[Complex Type] (複合型)オプションを選択し、[Next] (次へ)をクリックします。
-
新しいエレメントの名前を入力します。この例では、まず複合型エレメントEUAddressを追加します。
-
リストから複合型を選択します。この例では、EUAddressTypeを選びます。
-
[Finish] (終了)をクリックします。
複合型EUAddressTypeの新しいエレメントEUAddressは、AddressTypeからエレメントを継承するエンティティに追加されます。
-
同じ手順を繰り返して、AddressTypeのエレメントを継承するエンティティに複合型USAddressTypeの別の新しいエレメントUSAddressを追加します。