データベースマッピング 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>
    

詳細情報

詳細については、次のリンクを参照してください。

recommendation-more-help
campaign-classic-help