关于模式版本

Adobe Campaign使用数据模式来:

  • 定义应用程序内的数据对象如何与底层数据库表的联系起来。
  • 定义 Campaign 应用程序中不同数据对象之间的链接。
  • 定义并描述每个对象中包含的个别字段。

要更好地了解活动内置表及其交互,请参阅 Campaign Classic数据模型

扩展或创建模式

要在活动中向核心模式(如收件人表(nms:收件人))之一添加字段、索引或其他元素,您必须扩展该模式。 For more on this, refer to the Extending a schema section.

要添加Adobe Campaign中不存在的全新数据类型(例如合同表),您可以直接创建自定义模式。 For more on this, refer to the Data schemas section.

扩展或创建模式后,最佳实践是按照其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查询读取性能提高也会对写入记录产生性能影响。 因此,应谨慎使用这些索引。

有关索引的详细信息,请参 阅索引字段

按键

每个表都必须至少有一个键,通常,它会使用设置为“true”的@autopk= true 属性在模式的主元素中自动建立。

主键也可以使用内部属性进 行定 义。

示例:

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

在此示例中,我们将指 定自己的 “householdId”主键,而不是让@autopk属性创建名为“id”的默认主键。

重要

创建新模式或在模式扩展期间,您需要为整个模式保留相同的主键序列值(@pkSequence)。

要进一步了解密钥,请参阅“密钥 管理”部分

属性(字段)

属性允许您定义构成数据对象的字段。 您可以使用模式 Insert 版工具栏中的按钮将空属性模板拖放到光标所在的XML中。 For more on this, refer to the Data schemas section.

属性的完整列表在元素部 <attribute> 分中 。 以下是一些最常用的属性:

  • @advanced

  • @dataPolicy

  • @default

  • @desc

  • @enum

  • @expr

  • @label

  • @length

  • @name

  • @notNull

  • @必填

  • @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" />

XML字段的示例也存储在SQL字段中,该字段具有 @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… 。 For more on this, refer to the Regenerating schemas section.

在此页面上