小课堂, 为什么多表关联依赖外键
-
PostgREST服务在启动时会加载数据库中的元数据信息(catalog),并通过分析元数据信息来构建对象之间的关联关系。PostgREST通过外键来识别表与表之间的关系,从而确定两个表是否能进行关联查询,目前PostgREST的接口没有实现on语法,因此开发者无法简单的根据自己的需要在任意两个表之间进行关联查询。
PostgREST在启动时会分析表、视图、函数等一系列对象,当join表时,PostgREST会将表的外键字段作为关联条件;当join视图时,会将该视图对应的表的外键作为关联条件;当join函数时,会将函数所返回的表的外键字段作为关联条件。
这里这么描述可能比较抽象,后面会详细展开用具体的例子进行讲解,只需要知道如下两点:
PostgREST进行多表关联,需要在表与表之间建立外键约束。
PostgREST支持对表、视图以及返回结果是表的函数进行关联查询。