Mapping Principles

These principles must guide every mapping decision. Violating them leads to data quality problems, ETL complexity, and rework.

Table 1. Core Mapping Principles
Principle Explanation
Map by business meaning first Never map by column name similarity alone. A source column called "phone" might be a contact number that maps to ldz_party_contact — or it might be a branch phone that maps to ldz_branch_dtl. Always confirm the business meaning.
Identify the grain of the source table first Before mapping a single column, determine: what does one row represent? One customer? One account? One daily balance? Mapping fails when grain is misunderstood.
One source table may produce multiple CDM entities A "Customer Master" table typically produces rows in party_demographic, party_identity, and party_contact. Plan for this upfront — it requires separate mapping rows for each target.
Multiple source tables may populate one CDM entity A bank may have separate KYC and CIF tables that both contribute to ldz_party_identity. This requires a union or join strategy — document it explicitly.
Distinguish data type by category Before mapping each table, classify it: Is it master data? Reference data? Relationship data? Transactional or event data? The category determines the target entity family.
Separate attribute mapping from relationship mapping Do not bury relationship data (who owns which account) inside a demographic target table. Relationship data goes into dedicated relationship entities like ldz_account_party.
Always preserve the source business key The source natural key (e.g., CUST_ID from the source CRM) must flow into CDM. This becomes the natural key in the LDZ and drives hash key generation for the RDV layer.
Document transformation logic explicitly Do not leave transformations as "implied". Every derivation, date format conversion, code mapping, or null handling rule must be written in the Transformation column of the MID.
Do not force-fit unclear fields If you cannot confidently determine the business meaning of a field, do not guess. Mark it as PENDING CLARIFICATION and seek input from the client data SME.
Use attrib_* columns sparingly LDZ tables contain flexible attribute columns (attrib_1 through attrib_n) for short-term extension. These are for controlled, approved use cases — not a dumping ground for fields that do not fit anywhere else.