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

时间:2017-12-20 19:43:41

标签: postgresql function schema

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

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

  1. live:应用程序使用的所有函数,表格等
  2. utest:单元测试
  3. testframe:单元测试功能/框架
  4. testdata:创建通用测试数据的函数
  5. 当数据库发货到生产时,'直播'保留架构,删除所有测试架构。

    所以我的问题是:“生活”中的功能是否有任何理由?架构明确使用' live。'引用表并调用其他函数时的模式前缀?

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

    谢谢,感谢任何评论。

1 个答案:

答案 0 :(得分:1)

始终使用模式名称限定对象是确保错误地使用其他模式中没有其他具有相同名称的对象的好方法。例如,pg_catalog架构始终位于search_path上,因此可能会选择系统对象。