Hi everyone,
I'm trying to convince my boss that using normalisation is the best way to design a database but he's a hacker rather than a coder and he's taking some convincing.
If we take the typical Staff\Department scenario as an example (where it would be possible for a new member of staff to not yet be assigned to a department, say - (this is similar to a problem we are trying to iron out at the moment)).
My intuition and all the text books I've ever read would say do this:
Staff
StaffId *
Name
Department
DepartmentId *
Name
StaffDepartment
StaffId
DepartmentId
However he would want to do this:
Staff
StaffId *
Name
DepartmentId (Nullable)
Department
DepartmentId *
Name
I can see his point-of-view but still want to do it the normalised way. If I can convince him that the performance of the database is better when normalised then it would sway him, but I'm no expert when it comes to indexes and table scans and the like.
Could somebody please explain if and why a normalised database performs better.
Many thanks in advance.