功能實現的位置可以是:前端-後端-資料庫端中的某一處,通常考慮的比較多的是把一個功能放在前端還是後端處理,往往忽視了放在資料庫端處理。
其實資料提供了很多個物件可以把一些功能在資料庫端處理。比如如下三個對象:view\procedure\trigger。
________________________________________________________________________________
視圖是虛表
預存程序是sql語句
觸發器是預存程序
這是比較簡單的描述但是卻道出了他們的本質。
________________________________________________________________________________
視圖:視圖是一個虛表,即視圖所對應的資料不進行實踐儲存,資料庫中只儲存視圖的定義,對視圖的資料進行操作時,系統根據視圖的定義去操作與視圖相關的實表。
視圖的優點:為使用者集中資料,簡化使用者的資料查詢和處理;屏蔽資料庫德複雜性。簡化使用者權限的管理。便於資料共用。可以重新組織資料。
-----------------------------------------------------------------------------------------------------
預存程序:可以在資料庫中定義的子程式,這種程式塊稱為預存程序。
預存程序的優點:過程在伺服器端(資料庫端相對有後端,就是伺服器端),執行速度快;過程執行一次後代碼就駐留在高速緩衝儲存空間中;確保資料的安全;自動完成需要預先執行的任務。
-----------------------------------------------------------------------------------------------------
觸發器:觸發器是一些過程,與表關係密切,用於保護表中的資料。當你個實表被修改(insert、update、delete)時,觸發器自動執行。