Такой подход допустим и используется в различных фреймворках. Например, в Django это
Generic Relations.
Но, с точки зрения проектирования баз данных, это антипаттерн, и делать так не рекомендуется. Потому что нарушается целостность данных. Вы не можете повесить внешний ключ на resource_id и сделать, скажем, каскадное удаление. То есть получается, что в resource_id может оказаться любое число, не соответствующее существующему id какой-либо таблицы.
Делать так или нет, решать Вам. Но лично я бы не делал и держал отдельные таблицы.