使用两个数据库可互换,具有相同的结构但命名约定不同

时间:2013-10-17 21:01:49

标签: php sql sql-server sqlsrv

在某个时间点,我们更改了用于数据库的命名方案。数据库中的每个表名和列名都被重命名,但结构保持相同。

我需要能够在程序中读取当前表和旧表。到目前为止,我们只是有一组大型映射数组,我们将用它来动态转换结果。我们发现在我们的PHP代码中数千次访问此数组以转换每个结果的每一行中的每个列名称都会严重影响我们的性能。

解决这个问题的最佳方法是什么?可以在SQL Server中完成吗?

1 个答案:

答案 0 :(得分:2)

我认为两个最简单的选择是:

  • 为每个重命名的表创建一个视图。旧表名是视图的新名称。旧列映射到新列。无需更改应用程序代码。
  • 或者,如果你有一层代码来做映射,你可能会使用ORM或其他一些DB抽象层。如果可能,请在查询之前通过添加列别名或重命名结果集对象/数组字段来进行映射。