Show Menu
主题×

关于架构版

Adobe Campaign利用数据架构:
  • 定义应用程序内的数据对象如何与底层数据库表的联系起来。
  • 定义 Campaign 应用程序中不同数据对象之间的链接。
  • 定义并描述每个对象中包含的个别字段。
要更好地了解Campaign内置表及其交互,请参阅 Campaign Classic数据模型

扩展或创建架构

要将字段、索引或其他元素添加到营销活动中的某个核心数据架构,如收件人表(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查询读取性能提高也会在写入记录时带来性能命中。 因此,应谨慎使用这些指标。
有关索引的详细信息,请参阅“索引 字段 ”部分。

按键

每个表都必须至少有一个键,并且通常,通过使用 @autopk=true (属性设置为“true”),在架构的主元素中自动建立它。
主键也可以使用内部属性进 行定义
例如:
<key name="householdId" internal="true">
  <keyfield xpath="@householdId"/>
</key>

在本例中,我们指定的不是 @autopk 属性创建名为“id”的默认主键,而是我们自己的“houseldId”主键。
创建新架构或在架构扩展期间,您需要为整个架构保留相同的主键序列值(@pkSequence)。
要进一步了解密钥,请参阅密钥 管理部分

属性(字段)

属性允许您定义构成数据对象的字段。 您可以使用架 Insert 构版工具栏中的按钮将空属性模板放入光标所在的XML中。 有关详细信息,请参阅数据 架构部分
元素部分提供了完整的属性 <attribute> 。 以下是一些更常用的属性:
  • @advanced
  • @dataPolicy
  • @default
  • @desc
  • @enum
  • @expr
  • @label
  • @length
  • @name
  • @notNull
  • @required
  • @ref
  • @xml
  • @type
    要查看一个表,其中列出了Adobe Campaign为不同数据库管理系统生成的数据类型的映射,请参阅 Mapping the types of Adobe Campaign/DBMS data
有关每个属性的详细信息,请参阅“属 性描述 ”部分。

示例

定义默认值的示例:
<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... 。 有关详细信息,请参阅重新生 成架构部分