エンティティでの継承とポリモーフィズムを使用
データモデルにCompany、Individual、Party、Productというエンティティを含めることができる例を考えてみます。Talend Studioでは、IndividualとCompanyがどちらもPartyを拡張するという継承タイプを定義できます。Partyは、個人と会社を含むポリモーフィックエレメントになります。
Productエンティティで、Partyエンティティをポイントする外部キーをsupplier属性内に定義することもできます。したがって、この外部キーはIndividualまたはCompanyをポイントすることもできます。どちらもPartyを拡張し、ポリモーフィックな外部キーとして機能するからです。
始める前に
データモデルが作成済みであること。詳細は、データモデルを作成をご覧ください。
このタスクについて
エンティティに継承とポリモーフィズムを作成するには、以下のようにします:
手順
次のタスク
データモデルは次の図のようになります。
![](/ja-JP/studio-user-guide/8.0-R2024-07/Content/Resources/images/Inheritance_Poly2.png)
エンティティCompanyおよびIndividualは、PartyTypeグループを使用してPartyエンティティを拡張します。複合型はすべて、[Data Model Types] (データモデルタイプ)パネルにもリスト表示されます。
ここで、ポリモーフィックな外部キーを作成できます。この外部キーは、エンティティPartyをポイントすることにより、エンティティIndividualまたはCompanyもポイントできます。どちらもPartyを拡張するからです。
-
Productエンティティ内にsupplier属性を作成します。
supplierを右クリックし、リストから[Set the Foreign Key] (外部キーの設定)を選択します。
ダイアログボックスが表示されます。
-
[...]ボタンをクリックし、移動して、外部キーのポイント先とするエンティティにXpathを設定します。この例では、XpathはParty/codeに設定されています。
-
[Add] (追加)をクリックし、OKをクリックします。
外部キーのパスがsupplier属性の下にリスト表示されます。
PartyグループタイプをエンティティCompanyおよびIndividualに追加することにより、ここでエンティティレベルで継承を達成しました。
ポリモーフィズムは、実行時に、ビジネスユーザーがTalend MDM Web UIを使用してデータレコードを作成しようとした時に、実際のPartyエレメントをIndividualまたはCompanyに拡張できる場合にも達成されます。ビジネスユーザーは、[Select the relationship] (関係を選択)アイコンをクリックした時に、[Individual] (個人)および[Company] (会社)を表示する外部キーリストにもアクセスできます。ビジネスユーザーはこのリストから、Talend Studioで定義済みの任意の拡張タイプを選択できます。
![](/ja-JP/studio-user-guide/8.0-R2024-07/Content/Resources/images/Inheritance_Poly5.png)
デフォルトでは、複合型のリストにはタイプのコードが表示されますが、Talend Studioでは複合型のラベルを定義することもできます。そのため、複数の言語でラベルを設定でき、[Select a type] (タイプを選択)リストに表示した際にわかりやすくなります。この設定は次のように行います。
-
複合型を定義したデータモデルを開きます。
-
エディターの下部で[Schema Source] (スキーマソース)をクリックし、データモデルのソースXMLスキーマを開きます。
-
ラベルを追加し、ビジネスユーザーに特定の順序で表示しようとしている拡張複合型に対応するスキーマに移動します。
-
複合型のルートエレメント内で、X_Label_<ISO>注釈を使用して、拡張タイプに次のようにラベルを追加します。
... <xsd:complexType name="IndividualType"> <xsd:annotation> <xsd:appinfo source="X_Label_EN">individual supplier</xsd:appinfo> <xsd:appinfo source="X_Label_FR">fournisseur individuel</xsd:appinfo> </xsd:annotation> <xsd:complexContent> ...
上記のスキーマで、IndividualTypeにindividual supplierという名前を付け、拡張タイプのリストで3番目に置くという想定です。
-
変更をモデルエディター内に保存します。
承認済みのビジネスユーザーがTalend MDM Web UIを介してアップデートされたデータモデル内のマスターデータレコードを参照する時、[Select the relationship] (関係を選択)アイコンを使用して、注釈エレメントで定義したラベルを表示する拡張タイプリストにアクセスできます。
![](/ja-JP/studio-user-guide/8.0-R2024-07/Content/Resources/images/Inheritance_Poly8.png)