Skip to content
THE EXAMTOPICS EDITORIAL Explore practice exams

MICROSOFT

Microsoft PL-400: Designing Dataverse Data Models

Dataverse data design is where many Power Platform development problems are created long before an application interface becomes visible. A table with poorly chosen ownership, redundant columns, and unclear relationships…

Dataverse data design is where many Power Platform development problems are created long before an application interface becomes visible. A table with poorly chosen ownership, redundant columns, and unclear relationships can make a simple workflow difficult to secure, report on, and maintain. For the Microsoft PL-400 developer, the task is not just to create fields and forms: it is to represent business rules in a model that remains coherent when records arrive from Power Apps, APIs, plug-ins, and external systems. Data design is therefore an architectural decision with direct consequences for application behavior.

Microsoft is transitioning PL-400 registration to AB-400 on October 16, 2026, with previously registered PL-400 candidates able to test through October 30. This article addresses the Dataverse competencies central to the established PL-400 scope while recognizing that candidates should check the blueprint tied to their booking. The useful preparation question is not 'which button creates a lookup?' but 'what relationship, security boundary, and data lifecycle does that lookup express?'

Define entities from business behavior

Begin with the nouns and events that matter to the business. A service organization may need Customer, Service Contract, Work Order, Asset, and Visit records. One customer can hold several contracts; a contract covers particular assets; technicians complete visits against work orders. If these concepts are collapsed into a single giant table for convenience, updates become ambiguous and reporting produces duplicated facts. Choose tables that capture stable entities, then express relationships through lookup or many-to-many structures where the real world warrants them.

Look carefully at cardinality and ownership. A work order belongs to one customer but can involve several technicians; the relationship between assignments and technicians may deserve a separate assignment table because the link has its own properties, such as start time and role. A simple many-to-many association cannot always represent those additional facts cleanly. Alternate keys become important when a record must be synchronized with an external system whose identifiers are stable but distinct from internal row IDs. Unique business keys reduce dependence on fragile matching by name or email.

Business terminology needs normalization before metadata is frozen. Two departments may both have a field called 'status' but mean different things; one might describe contractual validity and the other operational progress. Define options in domain language and record which transitions are allowed. Consider whether a calculated value should be stored, computed on demand, or captured as historical evidence. Recalculating a contractual rate from today's price table can falsify an old invoice. The model must preserve the truth the business expects to audit.

Choose the correct table and column features

Standard tables provide familiar capabilities and relationships; custom tables support business-specific entities. Virtual tables expose data held outside Dataverse without copying the entire dataset, but external availability, query support, update behavior, and security must be considered. Elastic tables can suit certain high-volume scenarios, yet their transactional and feature characteristics differ from ordinary relational records. None is a universal performance shortcut. Choose by required consistency, operations, lifecycle, query patterns, and integration ownership, and validate which capabilities are actually supported in the target environment.

Column types matter beyond how a field looks on a form. Currency values require careful handling of precision and exchange-rate context. Date and time values need an explicit meaning for time zones; an all-day contractual deadline is not the same as an instant represented in UTC. Choices simplify governed categories but can become difficult when external systems use different status enumerations. Text columns used to store multi-valued identifiers often indicate a missing relationship. Metadata should make valid queries natural and bad data harder to enter.

Dataverse business rules and calculated or formula columns may express simple derivations, while more complex constraints can require server-side custom logic. Be clear about consistency. A visible warning on a form can help users, but bulk import and API callers can bypass purely client-side behavior. Critical invariants should be checked where all write paths converge. At the same time, avoid building enormous synchronous plug-ins that perform multiple remote calls before allowing a record to save. Data correctness and operability must be designed together.

Design relationships for real queries

A good data model is tested against common queries, not merely a drawing of boxes. Can a supervisor list all open work orders for contracts expiring this month? Can finance identify which invoices were generated from a given service visit? Does reporting require an expensive series of joins because the same business fact was split across unrelated tables? Build representative queries and consider the volume of related records. The shape of data access often reveals whether a proposed relationship is intuitive or only convenient for a first version of the UI.

One-to-many relationships are straightforward conceptually but have behavior around cascading actions, ownership, and deletion. Deleting a parent record can be far more consequential than removing a row from a demo database. Decide whether children should be deleted, reassigned, restricted, or retained for audit. A contract may close while its service history must remain available for seven years. An innocent cascading delete could violate retention obligations. Avoid giving administrators a deceptively simple action whose effects span an entire customer history.

Pagination, filtering, and query selectivity are essential when millions of rows accumulate. A Power App should not retrieve an entire work-order history merely to display today's assignments. Use server-side filtering, retrieve only needed columns, and understand connector delegation limits. A query that seems fast with 500 test records can be unusable with a year's worth of production data. Treat performance as a property of the data design and query contract, not an aesthetic detail the UI team can fix after launch.

Put authorization inside the data model

Dataverse uses role-based access control to govern privileges by table and access scope, while ownership arrangements influence which records are visible or editable. For a regional service company, technicians might see work orders assigned to their area while executives view cross-region performance. Decide whether user- or team-owned records fit the collaboration model. Security at table or record level is distinct from column-level protection for a sensitive field such as bank details. Role composition can also create unexpected access when privileges from several roles combine.

Service identities deserve their own security review. A background integration may import thousands of records but should not automatically gain the ability to export salary fields or delete every customer. Use narrowly scoped roles, secure credential management, and separate production service principals from developer accounts. A plug-in running in an elevated context can inadvertently bypass a caller's intended restrictions if it is not designed carefully. Test authorization through the exact channel the user or integration will use, including API access and indirect automation.

Auditing provides evidence about who changed what and when, but it is not a substitute for access control. Decide which tables and columns require audit history and how retention works. Logs, backups, downstream data exports, and search indexes can each become additional repositories of sensitive information. Privacy and regulatory requirements may affect synchronization, masking, and deletion. The data model should make it possible to satisfy those requirements without improvising fixes every time a new application connects.

Integrate and synchronize without duplicates

When Dataverse shares responsibility for a customer record with an ERP or CRM, clarify the authoritative source for every attribute. One system may own billing address while another owns credit status. Bidirectional synchronization without defined ownership creates loops in which each system repeatedly overwrites the other. Identify change events, conflict rules, expected delay, and the reconciliation method for missed messages. Changes should be traceable to their source and correlation identifier so investigators can reconstruct a sequence.

Alternate keys and upsert operations support idempotent processing when external record identities are stable. Suppose an ERP retries an update after a timeout; creating a new Dataverse row on each attempt would multiply customer records. Upsert with an appropriate key can avoid that class of duplicate, although the integration must still handle concurrent updates and field-level conflicts. Change tracking can help retrieve modifications without rescanning every row. It should be designed with awareness of deletions and the consumer's ability to resume from a checkpoint after downtime.

Virtual tables and direct API reads are tempting because they avoid copying, but they introduce runtime dependencies. If an external inventory service fails, a form that reads the latest stock count may stop working. A replicated cache may improve availability at the cost of staleness. Decide which decision requires live truth and which can accept a recent snapshot. The right architecture reflects the cost of stale data, not simply a blanket preference for real-time integrations.

Walk through a service-contract redesign

Imagine that a company stores every site visit as a note on its Customer table. Staff cannot reliably assign technicians, report repeat faults, or prove which contract authorized a repair. Separate Work Order and Visit tables, introduce Asset relationships, and preserve immutable details that explain the contract terms used at the time. Assign a business key that can be reconciled with the field-service platform. Then test whether authorized staff can find their work orders without receiving unrelated financial information. This exercise exposes design gaps far faster than drawing table icons without real requirements.

Plan the migration as carefully as the finished design. Historical notes may contain several visits in one free-text field, so conversion requires parsing, review, and a fallback for uncertain records. Validate record counts and business totals, preserve source identifiers, and stage a pilot rather than replacing every live workflow in one weekend. Security tests, data reconciliation, and controlled rollout should precede deleting the old structure. The value of Dataverse lies in giving all system entry points a consistent, governed representation of the business—not merely powering nicer forms.

Continue exploring the technologies and certification concepts that matter most to you.