Databasmappning database-mapping

SQL-mappningen i vårt exempelschema ger följande XML-dokument:

<schema mappingType="sql" name="recipient" namespace="cus" xtkschema="xtk:schema">
  <enumeration basetype="byte" name="gender">
    <value label="Not specified" name="unknown" value="0"/>
    <value label="Male" name="male" value="1"/>
    <value label="Female" name="female" value="2"/>
  </enumeration>

  <element name="recipient" sqltable="CusRecipient">
    <attribute desc="Recipient e-mail address" label="Email" length="80" name="email" sqlname="sEmail" type="string"/>
    <attribute default="GetDate()" label="Date of creation" name="created" sqlname="tsCreated" type="datetime"/>
    <attribute enum="gender" label="Gender" name="gender" sqlname="iGender" type="byte"/>
    <element label="Location" name="location">
      <attribute label="City" length="50" name="city" sqlname="sCity" type="string" userEnum="city"/>
    </element>
  </element>
</schema>

Beskrivning description

Schemats rotelement är inte längre <srcschema>, utan <schema>.

Detta tar oss till en annan typ av dokument, som genereras automatiskt från källschemat, som helt enkelt kallas schema. Det här schemat kommer att användas av Adobe Campaign-programmet.

SQL-namnen bestäms automatiskt utifrån elementnamn och typ.

Namnreglerna för SQL är följande:

  • tabell: sammanfogning av schemanamnrymden och namnet

    I vårt exempel anges namnet på tabellen via huvudelementet i schemat i attributet sqltable:

    code language-sql
    <element name="recipient" sqltable="CusRecipient">
    
  • fält: namnet på elementet föregås av ett prefix som definierats enligt typ (‘i’ för heltal, ‘d’ för double, ‘s’ för sträng, ‘ts’ för datum, osv.)

    Fältnamnet anges via attributet sqlname för varje typ <attribute> och <element>:

    code language-sql
    <attribute desc="E-mail address of recipient" label="Email" length="80" name="email" sqlname="sEmail" type="string"/>
    
NOTE
SQL-namn kan överladdas från källschemat. Det gör du genom att fylla i attributen "sqltable" eller "sqlname" för det berörda elementet.

SQL-skriptet som skapar tabellen som genereras från det utökade schemat är följande:

CREATE TABLE CusRecipient(
  iGender NUMERIC(3) NOT NULL Default 0,
  sCity VARCHAR(50),
  sEmail VARCHAR(80),
  tsCreated TIMESTAMP Default NULL);

SQL-fältbegränsningarna är följande:

  • inga null-värden i numeriska fält och datumfält
  • numeriska fält initieras till 0

XML-fält xml-fields

Som standard mappas alla typer av <attribute>- och <element>-element till ett SQL-fält i datarapporten. Du kan emellertid referera till det här fältet i XML i stället för SQL, vilket betyder att data lagras i ett PM-fält (“mData”) i tabellen som innehåller värdena för alla XML-fält. Lagringen av dessa data är ett XML-dokument som observerar schemastrukturen.

Om du vill fylla i ett fält i XML måste du lägga till attributet xml med värdet “true” till det aktuella elementet.

Exempel

  • Flerradskommentarfält:

    code language-sql
    <element name="comment" xml="true" type="memo" label="Comment"/>
    
  • Beskrivning av data i HTML-format:

    code language-sql
    <element name="description" xml="true" type="html" label="Description"/>
    

    Med typen html kan du lagra HTML-innehåll i en CDATA-tagg och visa en speciell HTML-redigeringskontroll i Adobe Campaign klientgränssnitt.

Med hjälp av XML-fält kan du lägga till fält utan att behöva ändra databasens fysiska struktur. En annan fördel är att du använder mindre resurser (storlek som tilldelas SQL-fält, gräns för antalet fält per tabell osv.).

recommendation-more-help
campaign-help-v8