I am an architect for a very large, well known Fortune 120 company.
I would love to have a diagram for every database that I am responsible for (or work with), but taking the time to build an ERD is seen as a waste of time and money by management.
/RANT (sorry, but to use a millennial term 'I have been triggered')
I am just now being put on a project with a team of developers who have been allowed to run wild. I am tasked with getting their DB to run 'right'.
The lead developer is one of those types who believes that he has to use the newest technology and must use a 'buzzword' at least every 4th word in every sentence. Bane of my existence.
This guy built a database based on the party model. He read about the 'Party Model' on some agile blog and just HAD to use it as it is the next big thing.
Many examples of the tables lacking PK, FK's and normal form. No way to link a entity to a person. All tables built to make his application development easier to code instead of making the data reliable.
When I pointed this out, he said that all this would be taken care of 'in code'.
Indexing? Nope, don't need it.
Also found that the developers were reusing SQL code. Not a problem unless, as is the case here, the SQL was not modified to pull the data required in a targeted way.
They would pull every single record into application code only to filter the data on a date range!!!!!
They want to store JSON formatted data in the DB (2012), for ease of use for them. Meaning that the JSON data has to be broken up on the SQL side when trying to query a specific piece of the data.
Many of their queries were written in such a way as to force a full table scan.
Triangular joins. Need I say more.
I was able to review the DB before it made it out of DEV.
Wrote up a report for this guys boss expressing my dissatisfaction, listing the issues and with a recommendation that the DB be re-architected before any further development occurs.
Manager ignored me and allowed development. Code is now in PROD and is having all sorts of issues, failures and slowdowns. Oh, and was months behind schedule.
I have been tasked with fixing this nightmare DB.
IMHO, developers have no business building DB databases and I say this as a former developer. I also feel this way about developers writing SQL in general.
I can't tell you the number of times that I have had to put my foot down to stop a developer trying to mangle the data in a DB simply to make his/her life easier on the application side.
I can't tell you the number of times that I have had to 'consult' on terribly designed DB's (all designed by a 'full stack' developer).
I would love to have a DB design test in the interview process, but the heads of development would never let this fly.