Databasetoewijzing database-mapping

De SQL-toewijzing van ons voorbeeldschema geeft het volgende XML-document:

<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>

Beschrijving description

Het hoofdelement van het schema is niet langer <srcschema> , maar <schema> .

Dit neemt ons aan een ander type van document, dat automatisch van het bronschema wordt geproduceerd, eenvoudig die als schema wordt bedoeld. Dit schema wordt gebruikt door de Adobe Campaign-toepassing.

De SQL-namen worden automatisch bepaald op basis van de naam en het type van het element.

De SQL-naamgevingsregels zijn als volgt:

  • tabel: samenvoeging van de naamruimte en naam van het schema

    In ons voorbeeld, is de naam van de lijst ingegaan via het belangrijkste element van het schema in het sqltable attribuut:

    code language-sql
    <element name="recipient" sqltable="CusRecipient">
    
  • field: naam van het element voorafgegaan door een voorvoegsel gedefinieerd volgens type ('i' voor geheel getal, 'd' voor dubbel, 's' voor tekenreeks, 'ts' voor datums, enz.)

    De gebiedsnaam is ingegaan via het sqlname attribuut voor elk getypt <attribute> en <element>:

    code language-sql
    <attribute desc="E-mail address of recipient" label="Email" length="80" name="email" sqlname="sEmail" type="string"/>
    
NOTE
SQL-namen kunnen worden overgeladen uit het bronschema. Hiertoe vult u de kenmerken "sqltable" of "sqlname" op het desbetreffende element in.

Het SQL-script voor het maken van de tabel die wordt gegenereerd op basis van het uitgebreide schema ziet er als volgt uit:

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

De beperkingen voor het SQL-veld zijn als volgt:

  • geen null-waarden in numerieke velden en datumvelden
  • numerieke velden worden geïnitialiseerd naar 0

XML-velden xml-fields

Standaard worden elk getypt <attribute> - en <element> -element toegewezen aan een SQL-veld in de tabel met het gegevensschema. U kunt echter naar dit veld verwijzen in XML in plaats van naar SQL, wat betekent dat de gegevens worden opgeslagen in een geheugenveld ("mData") van de tabel dat de waarden van alle XML-velden bevat. De opslag van deze gegevens is een XML-document dat de schemastructuur in acht neemt.

Om een gebied in XML te bevolken, moet u xml attributen met de waarde "waar"aan het betrokken element toevoegen.

Voorbeelden

  • Veld voor opmerkingen met meerdere regels:

    code language-sql
    <element name="comment" xml="true" type="memo" label="Comment"/>
    
  • Beschrijving van gegevens in HTML-indeling:

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

    Met het type "html" kunt u de HTML-inhoud opslaan in een CDATA-tag en een speciale HTML-bewerkingscontrole weergeven in de Adobe Campaign-clientinterface.

Met XML-velden kunt u velden toevoegen zonder dat u de fysieke structuur van de database hoeft te wijzigen. Een ander voordeel is dat u minder bronnen gebruikt (grootte die is toegewezen aan SQL-velden, beperking van het aantal velden per tabel, enzovoort).

recommendation-more-help
35662671-8e3d-4f04-a092-029a056c566b