關於方案版本

Adobe Campaign採用資料結構:

  • 定義應用程式內資料物件與基礎資料庫表的連結方式。
  • 定義 Campaign 應用程式中不同資料物件之間的連結。
  • 定義及描述每個物件中包含的個別欄位。

如需深入了解Campaign內建表格及其互動,請參閱此區段

擴展或建立架構

若要將欄位、索引或其他元素新增至Campaign中的其中一個核心資料結構,例如收件者表格(nms:recipient),您必須擴充該結構。 有關詳細資訊,請參閱擴展架構區段。

若要新增Adobe Campaign中不存在的全新資料類型(例如合約表格),您可以直接建立自訂結構。 如需詳細資訊,請參閱資料結構區段。

擴展或建立結構以便使用後,最佳實務是按如下所示的順序定義其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查詢讀取效能增益還伴有寫入記錄時的效能點擊。 因此,索引應與預防搭配使用。

有關索引的詳細資訊,請參閱索引欄位區段。

金鑰

每個表至少必須有一個鍵,且通常會使用設為"true"的​@autopk=true​屬性,在架構的主要元素中自動建立該鍵。

也可以使用​internal​屬性來定義主鍵。

範例:

<key name="householdId" internal="true">
  <keyfield xpath="@householdId"/>
</key>

在此範例中,我們會指定自己的「househouldId」主要金鑰,而不是讓​@autopk​屬性建立名為「id」的預設主要金鑰。

重要

在建立新架構或架構擴充期間,您需要為整個架構保留相同的主鍵序列值(@pkSequence)。

要了解有關鍵的詳細資訊,請參閱鍵的管理部分。

屬性(欄位)

屬性可讓您定義組成資料物件的欄位。 您可以使用方案版工具欄中的​Insert​按鈕,將空屬性模板放置到游標所在的XML中。 如需詳細資訊,請參閱資料結構區段。

<attribute>元素區段中提供屬性的完整清單。 以下是一些最常用的屬性:

  • @advanced

  • @dataPolicy

  • @default

  • @desc

  • @enum

  • @expr

  • @label

  • @length

  • @name

  • @notNull

  • @required

  • @ref

  • @xml

  • @type

    要查看列出Adobe Campaign為不同資料庫管理系統生成的資料類型映射的表,請參閱映射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" />

SQL欄位中也儲存有XML欄位的示例,該欄位具有​@dataPolicy​屬性。

<attribute name="secondaryEmail" label="Secondary email address" length="100" xml="true" sql="true" dataPolicy="email" />
重要

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

連結是結構之主要元素中的最後一些元素。 它們定義您執行個體中所有不同結構彼此的關聯方式。

連結在包含連結表​外鍵​的架構中聲明。

基數類型有三種:1-1、1-N和N-N。預設會使用1-N類型。

範例

收件者表格(現成可用結構)與自訂交易表格之間1-N連結的範例:

<element label="Recipient" name="lnkRecipient" revLink="lnkTransactions" target="nms:recipient" type="link"/>

自訂結構「Car」(在「cus」命名空間中)與收件者表格之間1-1連結的範例:

<element label="Car" name="lnkCar" revCardinality="single" revLink="recipient" target="cus:car" type="link"/>

根據電子郵件地址而非主鍵在收件人表和地址表之間進行外部聯接的示例:

<element name="emailInfo" label="Email Info" revLink="recipient" target="nms:address" type="link" externalJoin="true">
  <join xpath-dst="@address" xpath-src="@email"/>
</element>

其中,「xpath-dst」對應至目標架構中的主索引鍵,而「xpath-src」對應至來源架構中的外鍵。

稽核軌跡

您可能想在結構底部加入的實用元素之一,是追蹤元素(稽核軌跡)。

請使用以下範例來包含與建立日期、建立資料的使用者、日期,以及表格中所有資料的上次修改作者相關的欄位:

<element aggregate="xtk:common:auditTrail" name="auditTrail"/>

更新資料庫結構

完成並保存更改後,需要將任何可能影響SQL結構的更改應用到資料庫。 要執行此操作,請使用資料庫更新嚮導。

有關詳細資訊,請參閱更新資料庫結構區段。

注意

當修改不影響資料庫結構時,您只需重新產生結構即可。 要執行此操作,請選擇要更新的架構,按一下右鍵並選擇​Actions > Regenerate selected schemas… 。 有關詳細資訊,請參閱重新生成結構部分。

本頁內容