SQL Server Database Development
Of the many technologies currently used in software development, databases actually have a significant amount of science and theory behind them. But you would never know that by looking at the database designs that are prevelant today. Even in large, very expensive applications. Especially, in large, very expensive applications. And databases underlying web applications. Those usually have poor designs as well. And your data deserves better than that.
Designing a database starts with consulting.
Asking the 'data owner':
what they are trying to do
what types of transactions
frequency & volume of transactions
Then a logical data model is created. A model that reflects the entities, attributes and relationships of the business processes.
Then a physical data model is created. One that represents the physical implementation of the logical data model. This is the table schemas, indexes, foreign keys, etc.
All this before a single prototype or line of code is created.
The logical data model is meant to give everyone a clear understanding of the data structures. To prevent 'fuzzy data models'.
But, this process doesn't occur very often today. Oh, there are a lot of reasons in fashion today:
'We're agile. Agile doesn't work that way.'
'There's no time. This is due in a week.'
'Code-first will automatically take care of that for me. I need to start coding now.'
We've heard most of them. But we see right through them. The reason this does not occur is very simple. It is not an easy task. But without it your application will suffer. And 'issues' will arise sometime in the future. You deserve better.