代码易读性/维护:在何处放置SQL语句?

时间:2011-02-14 14:02:00

标签: sql coding-style

  • 语言文件中?
  • 在包含所有SQL语句的语言文件中?
  • 在不同的.sql文件中?
  • 另一种方式?

分享您的代码风格。 :)

4 个答案:

答案 0 :(得分:1)

即使您不使用框架,MVC也可以通过将数据访问,逻辑和表示分离为单独的语言文件来帮助您保持理智。

答案 1 :(得分:1)

我猜你会得到尽可能多的答案。无论如何,让我们问为什么一个人可以 优先于另一个:

在语言文件本身(我不知道yoyu对语言文件意味着什么),但让我假设你的意思是编程语言本身。这个方法是微软与Linq采取的。它是在Gemstone中使用的,其中“查询”语言是Smalltalk(但不是SQL)

如果你把它放在一些.sql文件中,那么必须有办法来解决代码问题。我认为这是存储过程所做的。例如,可以在Postgres数据库软件中找到它的例子。

如果你把它放在很多文件中的一个可能是开放的。例如,您可能只有一个查询文件。这比使用由某个键标识的不同SQL语句的哈希表更好或更糟。

我每天都在Access软件中看到以下方法 1)在VBA中嵌入“只是字符串” 2)放入访问的查询部分 3)我甚至读过将这些SQL语句放在一个额外的SQL语句表中。

此致 弗里德里希

答案 2 :(得分:1)

这完全取决于 - 例如:

  • 在带有简单顺序控制流程的小型DB维护脚本中,很高兴看到使用它们的语句
  • 带循环/回调的程序应该尽早准备语句;那么init / prepare函数附近所有stements的列表都有意义
  • 一个特例:我使用一组用不同语言编写的工具脚本来做同样的事情;他们都从.txt文件中获取他们的语句包含由名称
  • 标记的SQL语句
  • 'big'应用程序(应该)使用存储过程 - 然后问题消失

答案 3 :(得分:1)

在Cobol中,我将SQL放在语言文件中,但是在单独的过程中。这样,我将业务逻辑与数据库逻辑分开。

在Python中,我将SQL放在自己的.py模块中。这样,我将业务逻辑与数据库逻辑分开。

在Java中,我将SQL放在一个单独的包中。这样,我将业务逻辑与数据库逻辑分开。

我没有使用其他语言,但我可能将业务逻辑与数据库逻辑分开。