You need to look more closely at your application and how it will interact with the data in the database. For example, is the data going to be read only, in other words no changes are going to happen with the data? Also will users access only the current years data or all data?
On the flip side, how stable is the software? Could table changes happen in the future? Imagine trying to make all table changes on 1000's of table?
If you are going to be managing large amounts of data, have a look at partitioning which helps in this. But you need to determine a good partitioning policy to get the most from this feature. For this you need to fully understand your application and what is happening with the data.