【问题标题】:SQL Server Table and Column Alias for legacy applications旧应用程序的 SQL Server 表和列别名
【发布时间】:2010-10-24 09:57:59
【问题描述】:

刚开始为一个新客户工作时,我注意到他们的数据库架构可以进行彻底的检修。我提出了一些建议(主要是命名约定),这些建议对于我们正在开发的新应用程序套件是可以接受的,但是系统还必须支持使用的旧名称(即 400 个左右的外部托管 Web 应用程序)。

有什么办法可以做到以下几点:

  • 更改表和列的命名以便在新应用程序中使用。
  • 创建永久网表别名或类似名称以允许遗留代码保持不变?

有点远射......

【问题讨论】:

  • 追溯并重命名数据库对象几乎没有回报。这可能会让您感觉更好,但通常这是一种非常没有成效的努力,不会为客户创造太多价值。

标签: sql sql-server tsql alias


【解决方案1】:

重构时人们通常做的是重命名表,使用旧表名和结构创建视图,然后对重命名的表进行更改。

例如,如果您将列从 person_id 重命名为 personid(以强制使用一致的样式),则视图可能会引用 personid,但将其命名为 person_id,这样旧代码就不会中断。

如果您要重构数据库并保持旧代码运行,我强烈建议您阅读 http://www.amazon.com/Refactoring-Databases-Evolutionary-Database-Design/dp/0321293533/ref=sr_1_1?ie=UTF8&s=books&qid=1254840934&sr=8-1

【讨论】:

    【解决方案2】:

    您可以重命名实际的表和列名,然后编写一堆视图来支持旧名称。不过,我不会冒险破坏或影响 400 个网站的性能。我想你只需要勉强度日。画一些好的表格图(这样你就可以了解名称)并开始进行项目。

    【讨论】:

      【解决方案3】:

      一种方法是创建可更新的视图。但是有它的所有限制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-15
        • 2017-04-17
        • 2010-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-07
        相关资源
        最近更新 更多