为什么在Postgres函数中使用显式模式前缀?

问题描述 投票:0回答:1

我使用Postgres进行微服务后端,数据库设计得很小(很简单)。

我们的数据库中有四个模式:

  1. live:应用程序使用的所有函数,表等
  2. utest:单元测试
  3. testframe:单元测试功能/框架
  4. testdata:创建公共测试数据的函数

当数据库运送到生产时,仅保留“实时”模式,所有测试模式都将被删除。

所以我的问题是:“实时”模式中的函数是否有任何理由明确使用“实时”。模式前缀在引用表和调用其他函数时?

经过大量的谷歌搜索后,我很难做出明确使用模式前缀的论据。

谢谢,任何评论表示赞赏。

postgresql function schema
1个回答
1
投票

始终使用模式名称限定对象是确保在其他模式中不能错误地使用其他模式的其他对象的好方法。例如,pg_catalog模式始终在您的search_path上,因此可能会选择系统对象。

© www.soinside.com 2019 - 2024. All rights reserved.