エンティティ
概要
エンティティは、エンタープライズ内の業務要素をまとめる際の軸となるものです。例えば、社員、製品、発注書、業務部門などが考えられます。
MarkLogicデータハブでは、MarkLogicのエンティティサービスを使用して、ビジネスエンティティのモデルを作成し、このモデルに基づいてコードの叩き台の生成、データベース設定、インデックス設定、検証を行えます。エンティティサービスは、API呼び出しによってモデル定義とエンティティインスタンスエンベロープドキュメントを処理します。自分独自の抽象エンティティを作成する場合は、こういったフレームワークを自分で指定する必要があります。
MarkLogicデータハブ では、エンティティに関するすべてのデータを(コンテキストと履歴を含めて)1つのレコードにまとめます。これによりサイロに分断されていたデータの全体像を把握できます。
複雑なエンティティ
エンティティモデルに他のエンティティを含めたり、他のものとリンクしたりできます。
- 「ローカルなエンティティの参照」では、ホストエンティティ内に入れ子になっているエンティティをプロパティの値として参照します。プロパティの値が各ホストエンティティにおいて違う場合、入れ子のエンティティを使用します。例えば、エンティティ
FullName
をエンティティEmployee
に入れ子にします。というのも、各社員(employee)の名前(full name)はそれぞれ異なるためです。 - 「外部のエンティティの参照」 では、別個に格納されているエンティティがあり、ホストエンティティはそのリンクだけを持ちます。プロパティの値が各ホストエンティティで共通の場合、エンティティへのリンクを使用します。例えば、エンティティ
Product
をエンティティOrder
,内でリンクとして利用できます。というのもSKUや製品の説明はどの注文においても同じだからです。
- 入れ子のエンティティ(ローカルなエンティティ参照)をマッピングする場合、ソースデータの要素のタイプは以下のいずれかになります。
- 1つのオブジェクト(Cardinalityが1..1の場合)
- オブジェクトの配列(Cardinalityが1..∞の場合)
- リンクされたエンティティ(外部のエンティティ参照)をマッピングする場合、ソースデータの要素のタイプは文字列(リンクされたエンティティのURIを含む)である必要があります。
入れ子になったエンティティオブジェクトのそれぞれには、エンティティモデルの名前とプロパティが含まれています。以下の例では、エンティティPerson
にプロパティname
とaddress
が含まれています。プロパティname
には、エンティティモデルFullName
に基づく入れ子エンティティが含まれています。
"instance": {
...,
"Person": {
"name": {
"FullName": {
"title": "Mr.",
"first": "John",
"middle": "Doe",
"last": "Smith"
}
},
"address": "..."
}
}