I am creating a module for a school. Now a school has a lot of data like: school general info, grades, classes, rates, registration dates, etc.
Now, there are some information that should remain more or less the same, regardless of the year, e.g. School Name, School address, Levels (as this is government regulated), etc.
However, there are those data that is year-dependent. E.g. Classes (new classes may be added next year?), registration dates, school holidays, school rates, etc. may be different from year to year.
And these aren't just standalone data for display. The system logic relies on some of them too. E.g. school rates determine the invoices to be generated for the parents. Hence, they can't just be changed on a whim, once set.
How do I handle these types of settings? When I create a 'new school', should my first question be for what school year are the settings going to be (e.g. Aug 2017 to Jun 2018)? And after that duration has ended (e.g. Jul 1 2018), I would be prompted to enter a 'new school year' followed by asking the user to go through all the settings again (prefilled with last year's info).