Microsoft Dataverse, formerly known as the Common Data Service (CDS), is the service where data is stored in the Power Platform. This is a key aspect of the Power Platform.
Traditional relational databases often require dedicated administrators and complex setups, but Dataverse simplifies things. It manages the infrastructure for you and includes features such as governance, security and auditing.
Core Architecture
In this section, I will provide an idea of Dataverse architecture, and here we go:
- Database: Stores transactional table data.
- File: Stores unstructured data, such as notes and attachments.
- Log: Tracks data changes for audit purposes.
| Dataverse Storage Type | Underlying Cloud Service | Description |
| Database | Azure SQL Database |
This includes table definitions, data in rows and columns, metadata, relationships, and indexes.
|
| File | Azure Blob Storage |
Attachments like images, PDFs, documents, and videos linked to notes or emails are also included.
|
| Log | Azure SQL Database |
This also includes audit logs, plug-in trace logs, changes to field values, and updates to security roles.
|
| Table Type | Description |
| Standard | Out-of-the-box tables such as Account, Contact, User, etc. |
| Custom | User-created table to store custom business data. |
| Activity | Ready-to-use activity tables for appointments, tasks, emails, etc. |
| Virtual | Customizable tables to pull data from various sources such as SharePoint, SQL, APIs, etc. |
| Elastic | Designed to store very large datasets. |
After discussing the different types of tables, we will now explore the types of relationships you can apply.
| Relationship type | Definition |
| 1:N | A primary (parent) table can link to many rows in a related (child) table. |
| N:1 | A child table can have multiple rows, each of which connects to a single row in a parent table. |
| N: N | Also, one table can have many rows that connect to many rows in another table. |
In this section, I will present several basic Dataverse data types using the following tables.
Text
This stores letters, numbers, and symbols as easy-to-read string values.
| Data Type | Format | Storage |
| Single Line of Text | Plain text | String |
| Multiple Lines of Text | Memo | Text |
| Rich Text | HTML | Text |
| Email format | StringType | |
| Phone | Phone format | StringType |
| URL | Web link | StringType |
Numeric
This holds whole or decimal numbers that you can use for calculations and measurements.
| Data Type | Storage |
| Whole Number | Integer |
| Decimal Number | Decimal |
| Floating Point Number | Float |
Financial
This keeps currency values accurate for money data and transactions.
| Data Type | Storage |
| Currency | Money + Currency table |
Date and Time Data
This records specific dates, times, or both for tracking when events happen.
| Data Type | Storage |
| Date Only | Date |
| Date and Time | DateTime |
Boolean
This shows a simple true/false or yes/no value.
| Data Type | Storage |
| Yes/No | Bit |
Choice
This allows users to pick from a set list of options.
| Data Type | Storage |
| Choice (Option Set) | Integer |
| Choice (Multi-select) | Integer array |
Lookup/Relationship
This connects a record to another table, creating a link between them.
| Data Type | Storage | Relationship Type |
| Lookup | GUID | Many-to-One |
| Customer | GUID | Account or Account |
| Owner | GUID | User or Team |
File & Media
This holds uploaded files, images, or other types of content within a record.
| Data Type | Storage Location | Max Size |
| File | Azure Blob | 128 MB |
| Image | Azure Blob | 30 MB |
