データベースマッピング database-mapping
このページでは、スキーマのフィールドでインデックスを宣言する方法について説明します。
Campaign v7 から v8 への移行の一環として、Campaign Classic のドキュメントセットを効率化および再編成しました。 共通機能は、Campaign v8 ドキュメントセットでのみ使用できるようになりました。 スキーマのSQL マッピングについて詳しくは、Campaign v8 ドキュメント を参照してください。
索引付きフィールド indexed-fields
インデックスを使用すると、アプリケーションで使用されるSQL クエリのパフォーマンスを最適化できます。
インデックスは、データスキーマのメイン要素から宣言されます。
<dbindex name="name_of_index" unique="true/false">
<keyfield xpath="xpath_of_field1"/>
<keyfield xpath="xpath_of_field2"/>
...
</key>
インデックスは次のルールに従います。
- インデックスは、テーブル内の1つ以上のフィールドを参照できます
- unique属性に「true」の値が含まれている場合、すべてのフィールドでインデックスを一意にできます(重複を避けるために)
- インデックスのSQL名は、テーブルのSQL名とインデックスの名前から決まります
NOTE
-
標準として、インデックスは、スキーマのメイン要素から宣言された最初の要素です。
-
インデックスは、テーブルマッピング(標準またはFDA)中に自動的に作成されます。
例:
-
メールアドレスと市区町村にインデックスを追加する:
code language-sql <srcSchema name="recipient" namespace="cus"> <element name="recipient"> <dbindex name="email"> <keyfield xpath="@email"/> <keyfield xpath="location/@city"/> </dbindex> <attribute name="email" type="string" length="80" label="Email" desc="Email address of recipient"/> <element name="location" label="Location"> <attribute name="city" type="string" length="50" label="City" userEnum="city"/> </element> </element> </srcSchema> -
「id」名フィールドに一意のインデックスを追加する:
code language-sql <srcSchema name="recipient" namespace="cus"> <element name="recipient"> <dbindex name="id" unique="true"> <keyfield xpath="@id"/> </dbindex> <dbindex name="email"> <keyfield xpath="@email"/> </dbindex> <attribute name="id" type="long" label="Identifier"/> <attribute name="email" type="string" length="80" label="Email" desc="Email address of recipient"/> </element> </srcSchema>
詳細情報
詳細については、次のリンクを参照してください。
- スキーマの基本を学ぶ
- スキーマの構造
- 鍵の管理
- リンク管理 (Campaign v8 ドキュメント)
recommendation-more-help
campaign-classic-help