在我们的应用程序中,我们支持多种类型的数据库,即Oracle、IBM DB2 (both UDB and ZOS)、postgresql等。目前,我们正在为每个不同的数据库维护单独的DDL和DMLs。
很难维护这些多个DDL/DMLs集,而且将来我们的应用程序可能不支持更多的数据库类型。
如果我们想维护一组DDL/DMLs,那么最好的方法是什么?
发布于 2015-01-19 11:34:30
支持多个数据库类型的最佳方法是为每个数据库类型优化sql语句。否则,有一天,您将在一种或另一种数据库类型上出现严重的性能问题。
此外,如果您的客户告诉他们“我支持Oracle、DB2、MSSQL等”而不对每个客户进行优化,这是不公平的。为什么?因为您的客户为数据库付出了很大的代价,而您的应用程序没有使用数据库提供的优点和功能。
发布于 2015-01-19 13:50:57
我将在这里列出一个不同的选项,因为它来自于一个开发背景。有一次,我们开发了一个客户机/服务器应用程序,我们希望DDL (在大多数情况下)在客户机和服务器之间是相同的。挑战在于客户端和服务器使用不同的数据库引擎。
所以我们所做的就是使用XML。我们定义了所有的表(甚至在XML中进行了升级)。然后使用不同的XSL样式表创建特定的创建(或升级)脚本(使用正确的DB引擎DDL方言),以针对客户端或服务器运行。所以他们从XML到SQL。我们不必维护不同的SQL定义。只有一个XML文件。
现在,我知道这个选择可能会引起一些麻烦,但它起了作用。我并不是说你应该选择这个选择。只是这是个选择。
https://dba.stackexchange.com/questions/89581
复制相似问题