<tons of useful info snipped>
From performance point of view, I would go with a single table with NULL fields on PostgreSQL.
pgsql-performance by date:
Соглашаюсь с условиями обработки персональных данных