在我看来,无论从个人的经验和所提问和回答,这SQL实现变化极大。第一个问题SQL的问题是:什么dbms你们使用?

在大多数情况下与SQL有几种方法来结构给定的查询,甚至使用同样的方言。但我觉得这很有趣,相对便携性的各种方法经常不讨论,也非常重视的时候。

但是,即使忽视的可能性,任何特定应用可能会或不会受到转换,我认为,我们希望,我们的技能、习惯和模式,以作为便携式成为可能。

在你的工作与SQL,怎么强烈你喜欢标准SQL法?如何积极做你不喜欢礼变化?请回答没有参照专有的偏好为目的的感觉更好的业绩,其中大多数人都承认通常是一个充分的合法辩护。

有帮助吗?

解决方案

我们对此十分重视,在我们的商店。我们不允许非标准SQL或扩展,除非他们支持所有的主要平台。即使这样,他们的代码内标记为非标准和理由是必要的。

这是达不到应用程序开发人员,使他们的疑问跑得快,我们有责任明确分开。该查询是要由DBMS本身或DBMS的DBA的调谐仅优化。

实时数据库,如DB2 / Z :-),工艺标准的SQL足够快。

我们执行这个的原因是为了给客户选择。他们不喜欢被锁定到一个特定的供应商提供的任何想法比我们多。

其他提示

我投票反对标准/供应商的独立sql

  • 只有很少的数据库实际上是交换。
  • 没有一个统一的数据库完全符合目前的sql标准。所以即使你是符合标准的,你是不是供应商的独立。
  • 供应商的差异超越sql语法。锁定的行为是不同的。隔离水平是不同的。
  • 数据库试验是非常艰难和在发展。有必要使它更难通过投掷多个供应商在游戏,如果你不是绝对需要它。
  • 有一个很大的权力在特定供应商的调整。(觉得限制',或'的分析功能"或"提示')

所以的精髓:-如果没有要求对供应商的独立性,得到专门用于供应商实际上使用。-如果有一项要求对于供应商的独立性,确保人支付的法案,这将需要花钱。确保你们每一个关系数据库可用于测试。并使用它 -把每件sql在一个特殊的层,这是可插入的,因此可以使用电力的数据库和工作与不同的供应商 -只有那里的差别是一个纯粹的问题的法与标准,例如使用oracle记号为(外)加入与ANSI标准的语法。

在我的经验,查询便携原来是不那么重要。我们与各种数据源(主要是MSSQL和MySQL)工作,但我们知道哪些数据存储的位置,并可以相应地优化。由于我们控制系统,我们决定什么时候 - 如果有的话 - 结构移动和查询需要重写

我也喜欢用某些其他特定于服务器的功能,比如在SQL Server查询通知,其中MySQL不提供。所以,我们再次使用它时,我们能够而且不用担心可移植性。

此外,我们的应用程序部分需要查询它的架构信息和行为。在这里,我们再次对不同系统的特定服务器的代码,而不是试图自己限制在最小公分母。

有没有明确的答案SQL可移植性是否可取与否 - 这真的取决于形势很多,如应用程序的类型

如果该应用程序将是一个服务 - 即有只会永远是你收留了它,那么显然没有人,但你会在乎你的SQL是否足够便携,所以你可以放心地忽略它,只要你有没有具体的计划放弃对当前的平台支持。

如果该应用程序会在许多网站都需要安装,其中每个人都有自己建立的数据库系统,显然SQL可移植性是非常重要的人。它可以让你扩大你的潜在市场,并可以给予一点心灵的作品,以客户谁正在观望的问候他们的数据库系统。不管你是要支持,或者你是幸福只卖到,例如,甲骨文的客户,或只到MySQL / PostgreSQL的客户,例如,是由你和你认为你的市场。

如果您在PHP编码,那么绝大多数你的潜在客户很可能会期望MySQL的。如果是这样,那么它是不是一个大问题承担的MySQL。或类似的,如果你是在C#/。NET,那么你可以承担的Microsoft SQL Server。再次,然而,有一个反面,因为那里可能存在PHP或.NET用户的一个小而竞争力较弱的市场谁想要连接到比一般的其他数据库系统。

所以,我将在很大程度上认为这是市场研究的问题,除非在我的第一个例子你提供托管服务,它并不重要用户,在这种情况下,仅仅是为了自己方便。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top