[也適用於v8]{class="badge positive" title="亦適用於Campaign v8"}
方案特性 schema-characteristics
參照現有表格的綱要特性如下:
- Adobe Campaign不得修改相對於現有表格的SQL物件。
- 必須明確指定資料表和資料行的名稱,
- 必須宣告索引。
IMPORTANT
請勿刪除內建收件者表格中的欄位,即使這些欄位沒有用處。 這可能會導致Adobe Campaign資料庫發生行為錯誤。
檢視屬性 the-view-attribute
Source結構描述接受 srcSchema 根專案的 檢視 屬性。 在自訂表格中操作Adobe Campaign時,必須使用它。 view="true" 屬性會告訴資料庫結構更新助理忽略此結構描述。 因此,禁止應用程式將表格、其欄及其索引與對應的綱要同步。
當這個屬性設定為 true 時,結構描述只會用來產生SQL查詢,以存取這個資料表的資料。
表格和欄的名稱 names-of-tables-and-columns
當表格是由表格更新輔助程式建立時,表格和欄的名稱會根據個別綱要和屬性的名稱自動產生。 不過,可以輸入下列屬性來強制使用SQL名稱:
- 在結構描述的主要專案中的 sqltable,若要指定資料表,
- 每個屬性內的 sqlname,以指定資料行。
範例:
<element label="Individual" name="individual" sqltable="individual">
<key internal="true" name="id">
<keyfield xpath="@id"/>
</key>
<attribute name="id" type="long" length="32" />
<attribute name="lastName" type="string" length="100" sqlname="Last_Name"/>
<attribute name="firstName" type="string" length="100" sqlname="First_Name"/>
<attribute name="email" type="string" length="100"/>
<attribute name="mobile" type="string" length="100"/>
</element>
在此範例中,若未明確指定資料表和資料行的名稱,應用程式會針對資料表使用 CusIndividual,針對資料行使用 lastName 和 firstName。
在結構描述中,可能只填入現有表格的一部分欄。 使用者無法存取未填入的欄。
索引欄位 indexed-fields
從使用者端主控台排序清單的記錄時,依索引欄位排序可獲得較佳的效能。 在結構描述中宣告索引,讓主控台在欄標籤左側的排序順序箭頭下顯示帶有紅線的索引欄位,如下所示:
在結構描述中,索引的定義如下:
<dbindex name="name_of_index" unique="true/false"
<keyfield xpath="xpath_1st_field"/
<keyfield xpath="xpath_2nd_field"/
...
</dbindex
因此,在相符的結構描述中宣告自訂表格的現有索引很重要。
會針對來源結構描述的每個索引鍵和連結宣告以隱含方式宣告索引。 可藉由指定 noDbIndex="true" 屬性來防止索引宣告:
範例:
<key internal="true" name="customer" noDbIndex="true">
<keyfield xpath="@customerId"/>
</key>
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1