結構描述中的金鑰管理 management-of-keys
每個與資料結構描述關聯的表格必須至少有一個索引鍵來識別表格中的記錄。 本頁說明Campaign Classic v7表格中使用的自動增量索引鍵。
作為從Campaign v7轉變到v8的一部分,Campaign Classic檔案集已簡化並重新組織。 Campaign v8檔案集中現在提供常見功能。 若要深入瞭解金鑰管理,請參閱Campaign v8檔案。
自動增量索引鍵 auto-incremental-key
大部分Adobe Campaign表格的主要索引鍵是由資料庫引擎自動產生的32位元長整數。 索引鍵值的計算取決於產生在整個資料庫中唯一數字的序列(預設為XtkNewId SQL函式)。 插入記錄時會自動輸入金鑰的內容。
增量索引鍵的優點在於,它提供不可修改的技術索引鍵用於表格之間的聯結。 此外,此索引鍵使用雙位元組整數,因此不會佔用太多記憶體。
您可以在來源結構描述中指定要與 pkSequence 屬性搭配使用的序列名稱。 如果來源結構描述中未指定此屬性,則會使用 XtkNewId 預設序列。 應用程式會針對 nms:broadLog 和 nms:trackingLog 結構描述使用專用序列(分別為 NmsBroadLogId 和NmsTrackingLogId),因為這些表格包含的記錄最多。
從ACC 18.10開始,XtkNewId不再是現成可用結構描述中順序的預設值。 您現在可以使用專用序列來建置方案或擴充現有方案。
在Adobe Campaign結構描述中參考的序列(例如NmsTrackingLogId)必須與SQL函式相關聯,該函式會傳回引數中的識別碼數目(以逗號分隔)。 此函式必須稱為GetNew XXX Ids,其中 XXX 是序列的名稱(例如GetNewNmsTrackingLogIds)。 檢視 datakit/nms/eng/sql/ 目錄中的應用程式所提供的postgres-nms.sql、mssql-nms.sql或 oracle-nms.sql 檔案,以復原每個資料庫引擎的’NmsTrackingLogId’序列建立範例。
若要宣告唯一金鑰,請在資料結構描述的主要元素上填入 autopk 屬性(值為「true」)。
範例:
在來源結構描述中宣告增量金鑰:
<srcSchema name="recipient" namespace="cus">
<element name="recipient" autopk="true">
...
</element>
</srcSchema>
產生的結構描述:
<schema mappingType="sql" name="recipient" namespace="cus" xtkschema="xtk:schema">
<element name="recipient" autopk="true" pkSequence="XtkNewId" sqltable="CusRecipient">
<dbindex name="id" unique="true">
<keyfield xpath="@id"/>
</dbindex>
<key internal="true" name="id">
<keyfield xpath="@id"/>
</key>
<attribute desc="Internal primary key" label="Primary key" name="id" sqlname="iRecipientId" type="long"/>
</element>
</schema>
除了索引鍵及其索引的定義外,名為「id」的數值欄位已新增至擴充架構,以包含自動產生的主要索引鍵。
了解更多
瀏覽以下連結以瞭解更多資訊:
- 開始使用結構描述
- 方案結構
- 資料庫對應
- 連結管理 (Campaign v8檔案)
- Campaign資料模型 (Campaign v8檔案)