【问题标题】:postgresql duplicate table names best practicepostgresql重复表名最佳实践
【发布时间】:2011-01-28 06:38:19
【问题描述】:

我的公司有一些我们在我们构建的网站中部署的应用程序。最近,一个非常旧的应用程序需要与一个较新的应用程序一起包含,并且两个应用程序都需要使用重复的表名而发生冲突。

我们现在正在更新旧应用程序,并且会有一些数据库更新。我很好奇人们认为最好的做法(或者你是怎么做的)来帮助确保这些名称冲突不会发生。

我查看了架构,但不确定这是否是我们想要采取的正确路径。作为documentation prescribes,我不想将特定模式名称“连接”到应用程序中,如果我将模式添加到用户搜索路径,如果两个模式具有相同的表名,它如何知道我指的是哪个表.不过,也许我读了很多。

任何见解或智慧之言将不胜感激!

【问题讨论】:

    标签: database database-design postgresql application-design database-schema


    【解决方案1】:

    Postgres 有命名空间,这绝对是处理这类事情的最有效方式 :)

    只需为旧数据库创建一个新命名空间即可。大多数 PHP/MySQL 解决方案解决它的方式(每个应用程序的特定前缀)也是一种选择,但我不推荐。

    [编辑]具体来说,除了更改 search_path 之外,您还可以像这样调用您的表 the_namespace.tablename。其余的,如果您不添加命名空间,search_path 将决定您的命名空间。

    【讨论】:

    • SCHEMA 是命名空间的名称:CREATE SCHEMA the_namespace;
    猜你喜欢
    • 1970-01-01
    • 2010-11-11
    • 2019-04-03
    • 2013-07-03
    • 2011-02-11
    • 1970-01-01
    • 2021-03-13
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多