Having implemented both patterns across multiple Vault QMS deployments, here’s my analysis of the key considerations:
Normalized vs Denormalized Hierarchy: The self-referencing single-object approach (denormalized) is generally superior for Vault QMS supplier management. It provides cleaner reporting, simpler maintenance, and better leverages Vault’s native hierarchy features. The normalized multi-object approach creates unnecessary complexity in queries and increases the risk of data integrity issues during supplier transitions.
Parent-Child Self-Referencing Fields: Implement a parent_supplier__c object reference field on the Supplier object pointing to itself. Add a supplier_tier__c picklist (Parent Company, Regional Office, Manufacturing Site, Distribution Center) to distinguish hierarchy levels. This enables Vault’s automatic hierarchy path generation which is invaluable for reporting. Include a top_level_parent__c field that always points to the ultimate parent - this denormalization speeds up roll-up queries significantly.
Risk Attribute Modeling: Use a hybrid approach for tier-specific attributes. Common attributes (name, address, contact info) live directly on the Supplier object. Tier-specific attributes should use conditional field visibility based on supplier_tier__c. For complex risk assessments, create a related Risk Assessment object with a many-to-one relationship to Supplier. This allows multiple risk assessments over time while maintaining clean audit trails. Store aggregated risk scores (composite_risk_score__c, highest_child_risk__c) on parent records, updated via scheduled workflows as mentioned earlier.
Reporting and Roll-Up Strategies: Leverage Vault’s relationship reporting capabilities with the hierarchy path. Create a calculated field hierarchy_level__c that counts parent relationships to enable level-based filtering. For performance with large hierarchies, implement materialized views through scheduled jobs that pre-calculate common aggregations (total sites per parent, average risk scores, certification compliance percentages). Store these in summary fields on parent records rather than calculating on-demand. Build custom report configurations that use the hierarchy_path__c field for drill-down capabilities.
For audit readiness, maintain an immutable Supplier Hierarchy History object as suggested, but also implement field-level audit trails on critical attributes like risk scores and certification statuses. Use Vault’s standard audit features to track all relationship changes. Consider adding effective-dated relationships if you need point-in-time hierarchy reconstruction for regulatory reporting.
The self-referencing model with strategic denormalization of frequently-accessed aggregates provides the best balance of flexibility, performance, and audit compliance for supplier master data in Vault QMS.