Data model normalisation - Kosudo/nextSIS GitHub Wiki
I've normalised the data model but there are some pragmatic adaptations along the way - none of which fundamentally break the principle of good design, and which I've explained here on a case by case basis. Generally, you can expect everything to meet [first normal form (1NF)] (http://en.wikipedia.org/wiki/First_normal_form) and [second normal form (2NF)] (http://en.wikipedia.org/wiki/Second_normal_form). When we reach [third normal form (3NF)] (http://en.wikipedia.org/wiki/Third_normal_form) we encounter trade-offs between both usability and database performance versus the normalised form. The design documentation explains the process on a case by case basis.