How can developers design Dataverse tables to support auditability, scalability, and long-term data maintenance?
Question
Developers should consider relationships, ownership, alternate keys, data types, auditing requirements, retention and the volume of data expected over time.
The design should avoid unnecessary duplication while still supporting practical business and reporting requirements.
Enterprise solutions also need clear naming conventions, governance and a strategy for maintaining historical data.
Discussion: What Dataverse design decisions should be made before creating a table that may eventually contain millions of records?
Answers
Good Dataverse table design starts with the business data model, not the Power Apps screen. Developers should identify business entities, relationships, ownership, lifecycle, uniqueness requirements and retention needs before creating tables and columns.
A scalable model might look like:
Customer | +---- Contacts | +---- Orders | +---- Service Cases | +---- Activities
The objective is to avoid both extremes:
Under-modeling: putting unrelated business information into one large table.
Over-modeling: creating excessive tables and relationships that make the solution unnecessarily complex.
Auditability
Dataverse auditing can record user activities, system events and changes to data, supporting security, compliance and governance requirements. Audit configuration can be applied at the environment/organisation level and for relevant tables and columns.
However, auditing should be designed around actual compliance and business requirements. Turning on every possible audit capability without considering data volume, retention and operational requirements is not a substitute for an audit strategy.
Ask:
- What changes must be traceable?
- Who needs to see the history?
- How long must information be retained?
- Which sensitive fields require additional consideration?
- What constitutes a compliance event?
Scalability
Avoid designing tables simply for the current number of records.
Consider:
- Expected record growth
- Query patterns
- Relationships
- Ownership
- Security
- Integration volume
- Reporting requirements
- Data retention
- Archival requirements
Data Identity
External integrations frequently need a business identifier rather than the Dataverse GUID.
Dataverse supports alternate keys, allowing unique business columns or combinations of columns to identify records and support integration scenarios. Microsoft documents their use for integration when external systems do not know the Dataverse GUID.
For example:
External Customer Number | v Alternate Key | v Dataverse | v Customer Row
This can be particularly useful when implementing upsert-style integration patterns.
Long-Term Maintainability
A professional Dataverse design should also consider:
- Clear schema naming
- Appropriate relationships
- Appropriate column data types
- Choice/lookup usage
- Ownership model
- Security requirements
- Alternate keys where justified
- Audit requirements
- Integration contracts
- Environment/solution management
- Data retention
Microsoft's Dataverse guidance also emphasises scalability, security and performance as architectural considerations.
For freshers, the interview lesson is simple: a Dataverse table is not just a collection of fields. You should be able to explain the business entity, relationships, security, uniqueness and lifecycle.