Expand my Community achievements bar.

Multiple schemas per source VS single schema for multiple sources


Level 1

As a retail group operating across several brand divisions and in both online and in-store environments, one of the big things we are looking to achieve with AEP is connecting the online and offline experiences with the ability for cross channel attribution and single customer view across retail brands. We would be looking to feed into AEP very similar data from various websites as well as different ERP systems and data warehouses.


In that light, I am trying to figure out whether it would be better practice to set up a separate schemas for each source which could be brought together with unified profile (e.g. separate customer & transactions schemas for each source) OR set up one schema where some fields overlap between sources while others are source specific (e.g. email is populated into same field by all sources while ERP-ID is specific field per source | transaction total is one field populated by all, while invoice-ID is source specific.)


Your advice is much appreciated.



Topics help categorize Community content and increase your ability to discover relevant content.

1 Reply


Employee Advisor

There is a lot to unpack in your question and I’m not sure this would be the best format to do it.  In the end, the answer will be “it depends”.  As such I would recommend reaching out to our Consulting group and/or our partners to dive into your specific use cases and data structures for the best answer.



However, I don’t want to leave you hanging, so here are some things to consider:

  1. I like to have one source land in one place, it makes for simple auditing
  2. I like to have one schema to one dataset, it makes for easy to understand
  3. Merge Policies may play a role depending on how much you want to have AEP manage your Profile attributes dynamically or not.  I like to have dedicated fields instead of overlapping fields for simplicity and clarity reasons
  4. You may want to manage data differently depending on the source (TTL, batches, etc.).  Having it split apart gives you some of that flexibility.


Hope that helps