Search
Write a publication
Pull to refresh

Comments 5

Извините, но пост выглядит конечно как сообщение вида: я покакал покушал. Что конечно не отменяет полезность полиморфных связей.

А можно вас попросить рассказать подробнее про эти самые полиморфные отношения? А то статья, которая сводится к строчке "вот тут происходит вся магия", вызывает некоторое разочарование. И наводит на мысли о рекламном характере. При том что рекламируемый проект явно интересный, но тогда уж и стоило бы писать статью именно о нём?

выигрыш в долгосрочной перспективе огромный

Стоило бы уточнить, что у морф-связей есть большой недостаток: невозможность прокинуть Foreign Keys, поскольку внешняя таблица определяется не статически, а дискриминатором.

Могу предположить, что огромный выигрыш заключается в отсутствии необходимости дублировать код комментариев/рейтингов для разных сущностей. Но тогда возникает другой вопрос:

Почему не использовали STI или JTI? Разница с морфами: нужен дополнительный класс на каждую внешнюю таблицу (что может быть даже плюсом, ведь можно кое что местами кастомизировать), но зато будут FK и типизация в сущностях.

Хмм. Верное замечание, но как будто не сильно применимо именно к предметной области автора. Там же просто комментарии, рейтинг и лайки. Не стоит заморачиваться в таких тривиальных задачах над JTI/STI.

  • Morph — просто и гибко, но нет строгой типизации и FK. Хорошо для comments, ratings, likes.

  • 🧱 STI/JTI — сложнее в реализации, но даёт строгую структуру и гибкость логики в коде.

Если бы это были сырые запросы в БД, то да, можно было бы говорить о сложности, но здесь, как я понял, используется ORM. А значит вся сложность имплементации STI/JTI ложится именно на неё.

Sign up to leave a comment.

Articles