Постграфные представления против функций
Недавно я начал работать с Postgraphile для реализации API для использования приложения реагирования, над которым я сейчас работаю.
По мере роста моего приложения я постоянно пишу новые представления с умными комментариями для создания более сложных запросов к базе данных. Некоторые из них включают подзапросы, объединения и операторы объединения. На данный момент существует около 20-30 просмотров, и его становится сложнее поддерживать.
Есть ли альтернатива, которая все еще позволяет мне использовать гибкость и мощь Postgraphile без необходимости постоянно писать все больше и больше просмотров.
Спасибо:)
1 ответ
PostGraphile сопровождающий здесь. Я вообще не использую представления (за исключением нескольких тщательно отобранных материализованных представлений) при работе в PostGraphile; вместо этого я использую функции SQL. Функции SQL имеют ряд преимуществ перед представлениями при использовании с PostGraphile: они имеют тенденцию быть более производительными (особенно когда они встроены), их можно использовать для добавления новых / лучших отношений, они уважают ваши политики / гранты RLS, они могут боковая защита, если они вам нужны (SECURITY DEFINER
) и вы можете объявить их "стоимость", что полезно, если вы используете что-то вроде анализа стоимости запроса. Посмотрите на пользовательские запросы и вычисляемые столбцы
В зависимости от того, чего вы пытаетесь достичь, вы также можете решить многие makeExtendSchemaPlugin
,
Хороший источник совета по этому поводу - участники нашего Discord-чата.
Трудно советовать дальше, не зная, какие проблемы вы решаете с помощью представлений:)