后图视图与函数
Postgraphile views vs functions
最近,我开始与 Postgraphile 合作,为我目前正在开发的 React 应用程序实现 API。
随着我的应用程序的增长,我发现自己不断地使用 smart comments 编写新视图以创建对数据库的更复杂查询。其中一些包括子查询、联合和合并语句。至于现在大约有20到30个浏览量,而且越来越难维护。
是否有任何替代方法仍然允许我使用 Postgraphile 的灵活性和强大功能,而不需要不断地编写越来越多的视图。
谢谢:)
这里是 PostGraphile 维护者。在 PostGraphile 中工作时,我根本不使用视图(除了一些精心挑选的物化视图);相反,我使用 SQL 函数。 SQL 函数在与 PostGraphile 一起使用时比视图有很多优势:它们往往性能更高(特别是当它们 inlined), they can be used to add new/better relations, they respect your RLS policies/grants, they can side-step security if you need them to (SECURITY DEFINER
) and you can declare their "cost" which is useful if you're using something like query cost analysis. Take a look at custom queries and computed columns
根据您想要实现的目标,您还可以使用 makeExtendSchemaPlugin
解决很多问题。
我们 Discord chat.
的成员对此提供了很好的建议
如果不知道你正在用视图解决什么问题,很难进一步建议:)
最近,我开始与 Postgraphile 合作,为我目前正在开发的 React 应用程序实现 API。
随着我的应用程序的增长,我发现自己不断地使用 smart comments 编写新视图以创建对数据库的更复杂查询。其中一些包括子查询、联合和合并语句。至于现在大约有20到30个浏览量,而且越来越难维护。
是否有任何替代方法仍然允许我使用 Postgraphile 的灵活性和强大功能,而不需要不断地编写越来越多的视图。
谢谢:)
这里是 PostGraphile 维护者。在 PostGraphile 中工作时,我根本不使用视图(除了一些精心挑选的物化视图);相反,我使用 SQL 函数。 SQL 函数在与 PostGraphile 一起使用时比视图有很多优势:它们往往性能更高(特别是当它们 inlined), they can be used to add new/better relations, they respect your RLS policies/grants, they can side-step security if you need them to (SECURITY DEFINER
) and you can declare their "cost" which is useful if you're using something like query cost analysis. Take a look at custom queries and computed columns
根据您想要实现的目标,您还可以使用 makeExtendSchemaPlugin
解决很多问题。
我们 Discord chat.
的成员对此提供了很好的建议如果不知道你正在用视图解决什么问题,很难进一步建议:)