Dataverse, Dynamics 365

Unlocking Data Integrity: Implementing Alternate Keys in Microsoft Dataverse

Posted by Heidi Neuhauser

Dynamics 365 and Dataverse offer several built-in features to help manage and prevent duplicate data, like duplicate detection rules, merging records and duplicate detection jobs. You can perform duplicate detection jobs to sift through existing data and identify potential duplicates, allowing for manual merging, albeit a somewhat tedious process. For those who have endured this task, tools within XrmToolBox (like the Deduplicator) can offer some relief. However, there are scenarios where preventing the creation of duplicate records altogether is necessary. This is where alternate keys come into play. By setting up an alternate key in Microsoft Dataverse, the system ensures all values in this column remain unique across the table.

For example: let’s assume the business has a requirement that there should never be a duplicate email address entered on the Contact table. To solve this, we can set up a key for the Contact’s email address. Should a user attempt to enter a record with an email that already exists, the system will block the action and display an error. This can be crucial for maintaining data integrity and avoiding duplicate records based on critical attributes like email addresses.

How to set up an alternate key in Dataverse

  1. From a solution file, add the desired table.

  2. Open or expand the table inside of the solution file. Click Keys.

    add alternate key

  3. Go to keys and click New key in the ribbon.

    new alternate key

  4. Define and name your key. Select one or multiple columns when combined that create the unique alternate key. Click Save at the bottom when you are finished.

    define alternate key

Considerations when using alternate keys

Using an alternate key to enforce uniqueness on email addresses in Microsoft Dataverse can be very beneficial, but there are a few considerations you might want to keep in mind.

  1. Performance Impact: The addition of an alternate key creates an additional index in the database. While this helps in quickly locating records by the email address, it can have performance implications, especially if the table grows very large. Indexing can slow down the insertion of new records because the system needs to ensure the uniqueness constraint is maintained.

  2. Data Accuracy: If the uniqueness of the email is crucial for your application’s functionality (for instance, if email is used as a login identifier), then using an alternate key is a good approach. However, you should ensure that the email data entered is validated and accurate to avoid issues where users cannot correct a mistakenly entered email easily.

  3. Flexibility: Once an alternate key is set, removing or modifying it can be complex, especially if the system relies heavily on that key. Consider whether future requirements might require changes to how uniqueness is handled.

  4. Data Entry Errors: Relying solely on an alternate key for uniqueness can sometimes lead to problems if users mistakenly enter incorrect data (like a typo in an email address). You may need additional mechanisms to verify and correct email addresses before they are entered into the system.

If these considerations align with your application’s requirements and constraints, using an alternate key for email addresses and/or other key fields can be a very effective way to ensure data integrity and prevent duplicates.

Final Thoughts on Using Alternate Keys

Implementing alternate keys in Microsoft Dataverse is a powerful strategy for enhancing data integrity and preventing duplicate entries. While this approach brings significant benefits such as improved data accuracy and efficient record retrieval, it is important to consider its implications carefully. Factors like performance impact due to additional indexing, the criticality of data accuracy, the flexibility of data schemas, and potential data entry errors must all be weighed. Before implementing an alternate key, ensure that it aligns with your app’s functional requirements and long-term data management strategies.

Ultimately, using alternate keys can greatly aid in maintaining clean and reliable data, contributing to the overall efficiency and effectiveness of your system. As with any significant data strategy, careful planning and understanding of the tools and their impacts are crucial for success.

Note: This article was originally written for dynamicscommunities.com.

Related Post

1 Comment

  1. David Wade

    Hey Heidi,

    I’ve used alternate keys in data flows to update lookup fields.

    When I want to delete a relationship to a lookup field, I put a null into a column in the data flow and it does not remove the lookup.

    Have you run into this issue? I am considering using a plug-in, but would rather accomplish this in my flow.

    You were having fun in Las Vegas! Enjoyed folowing your posts.

Leave A Comment