2010-09-27 55 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