Учитывая, что вам нужно внедрить ленту новостей, такую как в социальных сетях, ex facebook. В настоящее время я использую класс News, который имеет полиморфную ассоциацию, которая может быть любого типа, как Image, Comment, Friendship, GroupMembership и т.д. Всякий раз, когда объект создается, так как создается News. Он отлично работает с AR (ActiveRecords), но у меня возникают проблемы, когда я переключаюсь на DM (DataMapper) или Sequel, так как оба они не поддерживают полиморфные ассоциации и не поощряют его использование.
Обходным решением будет использование большого предложения SQL с множеством UNION, чтобы объединить все различные таблицы, которые следует рассматривать как новости. Но у этого есть некоторые недостатки, особенно производительность будет ужасной.
Итак, мне интересно, как решать без полиморфных ассоциаций, сохраняя при этом хорошую производительность и никаких других недостатков, например, возможность добавления метаданных в новость?