This approach becomes difficult if you need to enforce domain constraints within the database through the use of referential integrity. Such a solution forces then constraints into the program code rather than in the database. In a complex enterprise application this leads to poor data quality.
It also adds complexity if you have very complex reporting requirements .