Yes, it has a database, more than one to be correct and it has this very cool and fancy thing called CDS which is equally awesome.
But it’s not a database.
Which right now is reminding me of this…
As you embark on your next DTS (Digital Transformation Services) project and you decide to move to this new platform, it’s important to remember this concept.
It’s Not a Database.
Even though you can configure it with entities (that look an awful lot like tables) and you can create relationships (that look an awful lot like foreign keys) that have attributes (that look an awful lot like columns).
It’s Not a Database.
Hiring a Database Architect to develop a schema for you in Dynamics will not be as efficient if they were to design it for Oracle or SQL, simply because there are a myriad of columns and metadata that get added to your system that you may/may not have control over. Worrying about these columns is not worth the work you are putting in.
Replicating your pre-existing schema column for column in Dynamics will not yield you any benefits because you are omitting everything that makes it a customizable platform. If your goal is to simplify later data migration and synchronization, this is a valid scenario but you’re approaching it from the wrong direction. Instead, take a moment to look at Virtual Entities or the Common Data Service to see if they can not only save you time. If you are trying to save time on ETL by creating everything as a string or making everything an Optionset instead of a related entity, you are ignoring the core benefits that the system has to offer.
Leveraging systems such as Dynamics as an intermediary data store to transfer data to and out of is a poor implementation choice for moving your digital transformation strategy forward (SQL Azure would be a better choice and probably a bit cheaper)
Think back to why you purchased this platform – was it to make use of the features and services the platform has to offer to give your customers and delivery teams more power to delivery solutions more quickly or was it to replicate your data structure?
Hopefully the former.
Similarly to being afraid to customize your new system, if you are going to treat Dynamics like a database, then that is all it will ever be for you. If you go down this path, I will tell you now, you will never get back from it what you have invested in it. The level of effort you are expending to make it look like your old system will all be for naught when you realize that it was the old system you were trying to get away from that was causing you the pain in the first place and now all you’ve done is replicated it in your new one.
Don’t think of Dynamics as a Database, it’s not an application, it’s a platform, and that’s where the shift in our design thinking needs to start happening.