스키마 편집 정보 about-schema-edition
Adobe Campaign은 데이터 스키마를 사용하여 다음을 수행합니다.
- 애플리케이션 내의 데이터 개체가 기본 데이터베이스 테이블에 연결되어 있는 방식을 정의합니다.
- Campaign 애플리케이션 내에서 서로 다른 데이터 개체 간의 링크를 정의합니다.
- 각 개체에 포함된 개별 필드를 정의하고 설명합니다.
Campaign 기본 제공 테이블과 상호 작용에 대한 자세한 내용은 이 섹션을 참조하세요.
스키마 확장 또는 생성 extending-or-creating-schemas
필드, 인덱스 또는 기타 요소를 Campaign의 핵심 데이터 스키마 중 하나(예: 수신자 테이블(nms:recipient)에 추가하려면 해당 스키마를 확장해야 합니다. 자세한 내용은 스키마 확장 섹션을 참조하십시오.
Adobe Campaign에 즉시 존재하지 않는 완전히 새로운 유형의 데이터(예: 계약 테이블)를 추가하려면 사용자 지정 스키마를 직접 만들 수 있습니다. 자세한 내용은 데이터 스키마 섹션을 참조하십시오.
작업할 스키마를 확장하거나 만든 후에는 아래에 표시된 것과 동일한 순서로 해당 XML 콘텐츠 요소를 정의하는 것이 가장 좋습니다.
열거형 enumerations
먼저 스키마의 주 요소 앞에 열거형을 정의합니다. 값을 목록에 표시하여 주어진 필드에 대해 사용자가 선택할 수 있는 사항을 제한할 수 있습니다.
예:
<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"/>
열거형에 대한 자세한 내용은 열거형 및 <enumeration>
요소 섹션을 참조하세요.
색인 index
인덱스는 스키마의 기본 요소에서 선언된 첫 번째 요소입니다.
고유하거나 고유하지 않을 수 있으며 하나 이상의 필드를 참조할 수 있습니다.
예:
<dbindex name="email" unique="true">
<keyfield xpath="@email"/>
</dbindex>
<dbindex name="lastNameAndZip">
<keyfield xpath="@lastName"/>
<keyfield xpath="location/@zipCode"/>
</dbindex>
xpath 특성은 인덱싱하려는 스키마의 필드를 가리킵니다.
인덱스에 대한 자세한 내용은 인덱싱된 필드 섹션을 참조하십시오.
키 keys
모든 테이블에는 하나 이상의 키가 있어야 하며 종종 "true"로 설정된 @autopk=true 특성을 사용하여 스키마의 기본 요소에 자동으로 설정됩니다.
internal 특성을 사용하여 기본 키를 정의할 수도 있습니다.
예:
<key name="householdId" internal="true">
<keyfield xpath="@householdId"/>
</key>
이 예제에서는 @autopk 특성이 "id"라는 기본 기본 키를 만들도록 하는 대신 고유한 "householdId" 기본 키를 지정합니다.
키에 대한 자세한 내용은 키 관리 섹션을 참조하십시오.
속성(필드) attributes--fields-
속성을 사용하면 데이터 개체를 구성하는 필드를 정의할 수 있습니다. 스키마 편집 도구 모음의 Insert 단추를 사용하여 커서가 있는 XML에 빈 특성 템플릿을 놓을 수 있습니다. 자세한 내용은 데이터 스키마 섹션을 참조하십시오.
<attribute>
요소 섹션에서 전체 특성 목록을 사용할 수 있습니다. 다음은 가장 일반적으로 사용되는 속성 중 일부입니다.
-
@advanced
-
@dataPolicy
-
@default
-
@desc
-
@enum
-
@expr
-
@label
-
@length
-
@name
-
@notNull
-
@required
-
@ref
-
@xml
-
@type
다른 데이터베이스 관리 시스템에 대해 Adobe Campaign에서 생성한 데이터 유형에 대한 매핑을 나열하는 테이블을 보려면 Adobe Campaign/DBMS 데이터 유형 매핑 섹션을 참조하십시오.
각 특성에 대한 자세한 내용은 특성 설명 섹션을 참조하십시오.
예제 examples
기본값을 정의하는 예:
<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 필드에 저장되며 @dataPolicy 특성이 있는 XML 필드의 예입니다.
<attribute name="secondaryEmail" label="Secondary email address" length="100" xml="true" sql="true" dataPolicy="email" />
XML 필드는 테이블의 메모 필드("mData")에 저장됩니다.
그러나 계산된 필드는 쿼리가 시작될 때마다 동적으로 생성되므로 응용 프로그램 레이어에만 존재합니다.
링크 links
링크는 스키마의 기본 요소에 있는 마지막 요소 중 일부입니다. 인스턴스의 모든 스키마가 서로 관련되는 방식을 정의합니다.
링크가 연결된 테이블의 외래 키 을(를) 포함하는 스키마에서 링크가 선언되었습니다.
카디널리티에는 1-1, 1-N, N-N의 세 가지 유형이 있습니다. 기본적으로 사용되는 1-N 유형입니다.
예제 examples-1
수신자 테이블(기본 스키마)과 사용자 지정 트랜잭션 테이블 간의 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"는 소스 스키마의 외래 키에 해당합니다.
감사 추적 audit-trail
스키마 하단에 포함할 수 있는 한 가지 유용한 요소는 추적 요소(감사 추적)입니다.
아래 예를 사용하여 생성 날짜, 데이터를 생성한 사용자, 날짜 및 테이블의 모든 데이터에 대한 마지막 수정 작성자와 관련된 필드를 포함할 수 있습니다.
<element aggregate="xtk:common:auditTrail" name="auditTrail"/>
데이터베이스 구조 업데이트 updating-the-database-structure
변경 사항이 완료되고 저장되면 SQL 구조에 영향을 줄 수 있는 모든 변경 사항을 데이터베이스에 적용해야 합니다. 이렇게 하려면 Database Update Assistant를 사용합니다.
자세한 내용은 데이터베이스 구조 업데이트 섹션을 참조하십시오.