我最近刚刚接触这块工作。一般web现在都是采用MVC模式。但是现在resetfull也热了。考虑现在的web使用。我计划把数据库操作这块提取出来,把Model也提取出来。
将数据库操作这块做成一个控制台服务。可以放在任何一个位置。
这样的目的:
1.可以建立必要的优先权限,同时再次检查是否会全表查询,尤其是权限表,给出告警。
2.统计访问
3.服务器隔离,更快速
4.直接在数据库访问服务器上进行model转换,序列化传回。
5.在web服务端可以很方便的修改resetfull
6.web服务端代码更加清晰,可以调用方法或者发送SQL
7.调度资源
8.很方便的替换数据库
9.满足各种库的更新
10.数据库读写也方便分离
这里还有一个小细节,如果数据库访问服务和web服务在同一个机器,则可以通过内存共享来访问,更加优质,但是服务(代码)却是分离的。
但是我不知道这样做是否真实和我考虑的有意义。或者违反了web开发设计的什么规则。
希望有经验的老码农,大神说说看法。
到目前,我看到MVC模式都没有分离,都是和web项目再一起实现的。
MVC模式:
M:model 层,数据操作的封装,负责获取数据库数据,
V:view层,显示数据,
C: Controller层,输入输出处理。
你所说的目的:
1.可以建立必要的优先权限,同时再次检查是否会全表查询,尤其是权限表,给出告警。(有限权限没听说过,全表查询检测,权限表这些都是数据库的事,和你model没关系,至于警告那是报错捕获到的信息)
2.统计访问(model中写一个方法,用于统计是可以的)
3.服务器隔离,更快速(model 没听说过有服务器隔离这么一说,数据库读写分离,负载均衡倒是知道)
4.直接在数据库访问服务器上进行model转换,序列化传回。(没听说过数据库还可以访问服务器的。只知道通过model 转化成sql语句,通过数据库解析处理sql,得到返回数据)
5.在web服务端可以很方便的修改resetfull(restful 是一个规范,通过不同的请求方式,做出不同处理,返回不同的结果)
6.web服务端代码更加清晰,可以调用方法或者发送SQL
7.调度资源
8.很方便的替换数据库(数据用来存储数据的,model只是对sql 的封装。不存在替换关系)
9.满足各种库的更新 (不同库可以封装成大致相同的model,只是方法可能有所欠缺或补充)
10.数据库读写也方便分离
这里还有一个小细节,如果数据库访问服务和web服务在同一个机器,则可以通过内存共享来访问,更加优质,但是服务(代码)却是分离的。(没听过说内存共享来访问的,数据库的数据虽然最终是保存在文件中的,但这些文件你直接拿到也不能过直接使用呀,需要处理的。现在的web为了能过实现高并发,多少会使用负载均衡的)
还有没听过有MVC 分离的,只知道前后端分离。
个人的讲解,如有疑问可深入探讨
请了解微服务、前后端分离等当今潮流,
要是知道React、vue等就更好了,
web socket?这个我也不清楚,
数据库也不只是RDBMS了,还有各种NOSQL数据库,最好去看看网友博文详细了解下当今最流行的 东东,