2010-09-27 101 views
0

我喜欢数据库设计,目前我正在开发SQL Server 2008中的一个,我不喜欢制作像'person_exist'或'get_person_data'这样的简单程序。你如何处理涉及数据库数据的功能和过程?我做对了吗?处理存储过程和函数

回答

0

个人而言,我倾向于直接在SQL中为“简单”数据编写查询,而不是为它们创建单独的过程。如果一个查询像SELECT * FROM person一样简单,为什么要花费所有的样板来创建一个正式的DB过程呢?另外,许多ORM框架可以直接生成这些简单的查询。我会保留适用于数据库层的更复杂查询的程序/函数。

当然,这只是我的看法,我已经看到它在两个方面都完成。您也可以争辩说,您应该为每个数据库查询创建一个过程,函数或视图,以便在数据库端进行的更改可以与客户端应用程序完全隔离。这种方法有一些优点,但创建所有这些“简单”程序将会更有用。

+0

感谢您的回答,事情是这个数据库将被其他开发者使用,他们不会知道数据库本身... – 2010-09-27 17:34:55

1

基础上,OP的评论:

的事情是,这个数据库将 使用其他开发人员,他们 不会知道数据库本身...

思考在编写程序时设置基础!

小心创建程序的方式会导致需要循环使用它们。如果应用程序需要在循环中调用相同的过程N次以获取数据,则性能将比应用程序可以进行单一调用并获得完整的单个结果集数据的性能低得多。想想,一个过程调用来获取标题数据和一个调用来获取所有的孩子的详细信息(不是每个孩子的调用循环)。

这是一个常见问题,我看到很多人在设计“API”类型的存储过程时陷入了困境。

+0

+1,因为这不能强调不够。不幸的是,它完全不符合OOP设计,所以它通常在路边...... – 2010-09-27 21:07:33