A practical classification standard for reusable data views
Purpose
This taxonomy provides a consistent way to classify tables/views within the Common Data Model (CDM). It separates:
- what kind of row the table contains (
table_type) - what business subject it relates to (
table_class) - how values behave (optional generator metadata)
The goal is clarity, scalability, and predictable design across domains such as Order, Project, Employee, Invoice, Customer, and Person.
1. Core Principle
Core identifies, Meta describes, Item records, Event captures, Bridge connects.
2. Standard Table Types
| Type | Definition | Use When | Examples | Typical Fields |
coreIs it one row per object? | The master object identity row. One row per key business entity. | You need the primary reference record. | order.coreproject.coreemployee.core | OBJECT_SEQOBJECT_CODEOBJECT_NAMEmaster identifiers creation / active status |
metaIs it an attribute about the object? | Attributes that describe a core object but do not create new business rows. | You are storing classifications, dates, flags, descriptors. | order.meta_codesproject.meta_dates | OBJECT_SEQMETA_TYPEATTRIBUTECODE_VALUEVALUE_METADATA |
itemIs it a recognised child transaction/line row? | A recognised child business row belonging to the object. These are operational rows users would recognise. | The source system naturally contains subordinate rows. | order.item_linesproject.item_expensesinvoice.item_lines | OBJECT_SEQITEM_KEYITEM_TYPErow values / amounts / quantities |
eventIs it something that happened? | A row representing something that happened at a point in time. Often process, workflow, audit, or lifecycle related. | The row grain is an occurrence, transition, or action. (Order status changed to Partially Delivered on a given date by a named user.) | order.event_stage_lifecycleproject.event_statusemployee.event_assignment | OBJECT_SEQITEM_KEY (event id / history seq)event date/time user notes state origin |
bridgeIs it a relationship between things? | A row representing a relationship between objects where multiplicity must be preserved. The relationship itself is the grain. | One-to-many / many-to-many links exist. (One project linked to multiple role holders.) | project.bridge_roleperson.bridge_identityemployee.bridge_manager | left object key right object key relationship type effective dates (optional) source confidence / precedence (optional) |
3. Naming Pattern
Recommended Pattern
[domain].[table_type]_[table_class]_[aspect]
Examples:
order.event_stage_lifecycleproject.bridge_role_activeemployee.event_dates_employmentinvoice.item_values_lines
If no extra aspect is needed:
order.coreproject.meta_codes
4. Example Classification
| Table | Type |
|---|---|
| Order Header | core |
| Order Region / Status | meta |
| Order Lines | item |
| Order Lifecycle Changes | event |
| Order ↔ Contacts | bridge |