代码之家  ›  专栏  ›  技术社区  ›  Eduardo Rascon

处理存储过程和函数

  •  0
  • Eduardo Rascon  · 技术社区  · 14 年前

    我喜欢数据库设计,我目前正在开发一个在SQL Server 2008,我不喜欢的一件事是使所有的简单程序,如“person_exist”或“getperson_data”。如何处理涉及数据库数据的函数和过程?我做得对吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   KM.    14 年前

    根据OP的评论:

    问题是这个数据库会 被其他开发人员使用 不会知道数据库本身。。。

    注意创建过程的方式会导致需要循环来使用它们。如果应用程序需要在一个循环中调用相同的过程N次以获取数据,那么性能将远远低于应用程序可以进行单个调用并获得完整的单个数据结果集的情况。想想看,一个过程调用来获取头数据,一个调用来获取所有子级的详细信息(不是每个子级的调用循环)。

    这是我看到许多人在设计“API”类型存储过程时遇到的一个常见问题。

        2
  •  0
  •   Justin Ethier    14 年前

    SELECT * FROM person ,为什么要费心为它创建一个正式的DB过程呢?另外,许多ORM框架可以直接生成这些简单的查询。我将为更复杂的查询保留过程/函数,这些查询应该属于数据库层。

    当然,这只是我的看法,我看到了这两种方式。您还可以争辩说,您应该为每个数据库查询创建一个过程、函数或视图,这样在数据库方面所做的更改就可以与客户机应用程序完全隔离。这种方法有一些优点,但要创建所有这些“简单”的过程还需要更多的工作。