功能实现的位置可以是:前端-后端-数据库端中的某一处,通常考虑的比较多的是把一个功能放在前端还是后端处理,往往忽视了放在数据库端处理。
其实数据提供了很多对象可以把一些功能在数据库端处理。比如如下三个对象:view\procedure\trigger。
________________________________________________________________________________
视图是虚表
存储过程是sql语句
触发器是存储过程
这是比较简单的描述但是却道出了他们的本质。
________________________________________________________________________________
视图:视图是一个虚表,即视图所对应的数据不进行实践存储,数据库中只存储视图的定义,对视图的数据进行操作时,系统根据视图的定义去操作与视图相关的实表。
视图的优点:为用户集中数据,简化用户的数据查询和处理;屏蔽数据库德复杂性。简化用户权限的管理。便于数据共享。可以重新组织数据。
-----------------------------------------------------------------------------------------------------
存储过程:可以在数据库中定义的子程序,这种程序块称为存储过程。
存储过程的优点:过程在服务器端(数据库端相对有后端,就是服务器端),执行速度快;过程执行一次后代码就驻留在高速缓冲存储器中;确保数据的安全;自动完成需要预先执行的任务。
-----------------------------------------------------------------------------------------------------
触发器:触发器是一些过程,与表关系密切,用于保护表中的数据。当你个实表被修改(insert、update、delete)时,触发器自动执行。