Show Menu
主題×

關於架構版本

Adobe Campaign採用資料結構描述:
  • 定義應用程式內資料物件與基礎資料庫表的連結方式。
  • 定義 Campaign 應用程式中不同資料物件之間的連結。
  • 定義及描述每個物件中包含的個別欄位。
如需深入瞭解Campaign內建表格及其互動,請參閱 Campaign Classic資料模型

擴充或建立結構

若要將欄位或索引或其他元素新增至促銷活動中的其中一個核心資料結構,例如收件者表(nms:recipient),您必須擴充該結構。 有關詳細資訊,請參閱「擴 展模式 」部分。
若要新增Adobe Campaign中不現成可用的全新資料類型(例如合約表格),您可以直接建立自訂結構。 有關詳細資訊,請參閱「數 據結構 」。
當您擴充或建立架構以便運作後,最佳實務是依照XML內容元素在下方的顯示順序來定義其XML內容元素。

枚舉

枚舉首先在模式的主要元素之前定義。 它們可讓您在清單中顯示值,以限制使用者對指定欄位的選擇。
例如:
<enumeration basetype="byte" name="exTransactionTypeEnum" default="store">
<value label="Website" name="web" value="0"/>
<value label="Call Center" name="phone" value="1"/>
<value label="In Store" name="store" value="2"/>
</enumeration>

在定義欄位時,您接著可以像這樣使用此列舉:
<attribute desc="Type of Transaction" label="Transaction Type" name="transactionType" 
type="string" enum="exTransactionTypeEnum"/>

您也可以使用使用者管理的枚舉(通常在 Administration > Platform 下)來指定指定欄位的值。 這些是有效的全局枚舉,如果您的枚舉可能在您正在使用的特定模式之外使用,則是更好的選擇。
要瞭解有關枚舉的詳細資訊,請參 閱枚舉 <enumeration>

索引

索引是在架構的主要元素中聲明的第一個元素。
這些欄位可以是唯一的,也可以參照一或多個欄位。
範例:
<dbindex name="email" unique="true">
  <keyfield xpath="@email"/>
</dbindex>

<dbindex name="lastNameAndZip">
  <keyfield xpath="@lastName"/>
  <keyfield xpath="location/@zipCode"/>
</dbindex>

xpath ​屬性指向您要索引的架構中的欄位。
請務必記住,索引提供的SQL查詢讀取效能提升還伴有寫入記錄時的效能點擊。 因此,應謹慎使用這些指標。
有關索引的詳細資訊,請參閱「索 引欄位 」部分。

按鍵

每個表至少必須有一個鍵,通常通過使用 @autopk=true attribute set to "true",在架構的主元素中自動建立該鍵。
主鍵也可以使用內部屬性 定義
例如:
<key name="householdId" internal="true">
  <keyfield xpath="@householdId"/>
</key>

在此範例中,我們並未讓 @autopk 屬性建立名為"id"的預設主鍵,而是指定我們自己的"householdId"主鍵。
在建立新模式或在模式擴展期間,需要為整個模式保留相同的主鍵序列值(@pkSequence)。
要瞭解有關鍵的更多資訊,請參閱「鍵 管理」部分

屬性(欄位)

屬性可讓您定義組成資料物件的欄位。 您可以使用 Insert 架構版工具列中的按鈕,將空屬性範本拖放到游標所在的XML中。 有關詳細資訊,請參閱「數 據結構 」。
「元素」部分提供了完整的屬性 <attribute> 。 以下是一些較常使用的屬性:
  • @advanced
  • @dataPolicy
  • @default
  • @desc
  • @enum
  • @expr
  • @label
  • @length
  • @name
  • @notNull
  • @required
  • @ref
  • @xml
  • @type
    若要檢視Adobe Campaign針對不同資料庫管理系統產生之資料類型之映射的表格,請參閱「對應Adobe Campaign/DBMS資料類型」一節 對應Adobe Campaign/DBMS資料類型
有關每個屬性的詳細資訊,請參閱「屬 性說明 」部分。

範例

定義預設值的示例:
<attribute name="transactionDate" label="Transaction Date" type="datetime" default="GetDate()"/>

將公用屬性用作欄位範本的範例,也標示為必填欄位:
<attribute name="mobile" label="Mobile" template="nms:common:phone" required="true" />

使用@advanced屬性隱藏的計算字 段示例 :
<attribute name="domain" label="Email domain" desc="Domain of recipient email address" expr="GetEmailDomain([@email])" advanced="true" />

XML欄位的示例也儲存在SQL欄位中,該欄位具有 @dataPolicy 屬性。
<attribute name="secondaryEmail" label="Secondary email address" length="100" xml="true" sql="true" dataPolicy="email" />

雖然大多數屬性都根據1-1基數連結到資料庫的物理欄位,但XML欄位或計算欄位不適用。 XML欄位會儲存在表格的備注欄位(「mData」)中。 但是,每次啟動查詢時都會動態建立計算欄位,因此它僅存在於應用層中。

稽核記錄

您可能想要在結構底部加入一個有用的元素,即追蹤元素(稽核記錄)。
請使用下列範例來包含與建立日期、建立資料的使用者、日期,以及表格中所有資料的上次修改作者相關的欄位:
<element aggregate="xtk:common:auditTrail" name="auditTrail"/>

更新資料庫結構

完成並保存更改後,任何可能影響SQL結構的更改都需要應用到資料庫。 要執行此操作,請使用資料庫更新嚮導。
有關詳細資訊,請參閱「更 新資料庫結構 」部分。
如果修改不影響資料庫結構,則只需重新生成結構。 要執行此操作,請選擇要更新的架構,按一下右鍵並選擇 Actions > Regenerate selected schemas... 。 有關詳細資訊,請參閱「重新生 成方案 」部分。