Data modelling is till a fine art with severe impacts in programming as well as in persistency. Long discussions are necessary to decide the better balance between complexity, ease of use, comprehensibility, ORM mapping and reporting need. It’s a bad habit to first implement and then to let the evolution dictate how the schema evolve; impacts can be tough. It’s fine if we add attributes during sprints, also adding relations is fine. I’m in favour of iterative and incremental approach with short cycle, nevertheless a strategical decision is to undertaken before starting the project in relation to the chosen persistency strategy.
If we are going NOSQL a different modelling approach is required. The classical ER approach were we model relations based on the dependencies of real life concepts have to be abandoned. In the DBA tables of law it was written: believe in normalised tables, your only God.! Or maybe not?
read more