0

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

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

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

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

4

1 回答 1

1

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

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

[编辑]具体来说,the_namespace.tablename除了更改search_path. 对于其余部分,search_path如果您不添加命名空间,则将决定您的命名空间。

于 2010-03-16T19:13:50.077 回答