---
title: Relational Based XDM
slug: ajo-orchestrated-campaigns-lab-march26/relational-based-xdm
docTags: 
createdAt: 2025-10-15T21:01:49.087Z
---

![](https://experienceleague.adobe.com/en/docs/journey-optimizer/using/campaigns/orchestrated-campaigns/data-configuration/schemas-datasets/media_1ac0bceb690e93404e27f371fe3ea1060cc2e662f.png?width=2000\&format=webply\&optimize=medium)

:::ExpandableHeading{isOpen="true"}
## Excercise

### Upload Your DDL

- Under **Data Management**, click **Schemas**.
- Click **Create Schema**
- Select the option **Relational Schema**
- Select the option **Upload DDL File**
- Drag and Drop your DDL File, Click **Next**

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/bsoY-lONjbbjvKUlukHkQ-20260116-150008.png)

### Entities and Fields to Import

We are creating a flat table with a Primary Key without relatable entities or identity namespaces (we will connect this data to a profile during our campaign workflow). However, we must do a few things here:

- Add your initials to the dataset name so every participant has a different table of their own. "brand\_list\_INITIALS"
- Select the modifiedDate as the version column.&#x20;
- Click Done.

![](https://api.archbee.com/api/optimize/1Jp0iolWv35Z_mkI7oUiT/faM3FDHqqK92ndkGbxf_9-20251015-224856.png)
:::

:::ExpandableHeading
## Lab Material

### Sample DDL

You can either download the file or copy the contents and save it in a note pad (notepad++, notes, textEdit, etc) with the extension .ddl.

::File{src="https://api.archbee.com/api/presign/1Jp0iolWv35Z_mkI7oUiT/onG6Hym5L4d_ipwbV56ri_adhoc-list-schema.ddl" label="adhoc_list_schema.ddl"}

```sql
-- ============================================================================
-- Lab Adhoc Lists - Table DDL
-- ============================================================================
-- Purpose: Adhoc lists for recipients
-- Primary Key: recipientListID (compound key: CRMID_ListID)
-- ============================================================================

CREATE TABLE lab_adhoc_lists (
    recipientListID VARCHAR(50) NOT NULL,
    recipientId VARCHAR(255) NOT NULL,
    email VARCHAR(255),
    listId VARCHAR(50),
    modified TIMESTAMP NOT NULL,
    enrollDate TIMESTAMP,
    clickActivity BOOLEAN,
    msisdn VARCHAR(50),
    channel_preference INTEGER,
    PRIMARY KEY (recipientListID)
);

-- ============================================================================
-- Column Descriptions
-- ============================================================================
-- recipientListID:    Unique identifier for each adhoc list entry (PK); compound key (CRMID_ListID)
-- recipientId:       CRM identifier linking to recipient/customer
-- email:             Recipient email address
-- listId:            Brand/list identifier
-- modified:          Last modification timestamp (required)
-- enrollDate:        Date/time when recipient enrolled in list
-- clickActivity:     Boolean flag for click engagement
-- msisdn:            Mobile phone number (MSISDN format)
-- channel_preference: Channel preference (maps to "channel preference" 1= email, 2=sms, 3=DM)
-- ============================================================================
```
:::

