阿
阿朱
Unregistered / Unconfirmed
GUEST, unregistred user!
关于业务规则放在哪一层上的问题?
放在数据层,做成视图,存储过程,触发器,好处是:安全性高,速度快(不用编译优化SQL语句
),数据完整性好,业务规则统一管理,修改业务规则不用修改程序。缺点是:绑定在了特定的DBMS
上,不利于跨数据库,第二是不利于扩展(现在的主流数据库产品都还不是分布式数据库)。
如果放在中间层,数据库就成了一个数据存放地,强大的数据库功能被放弃了,而且一个存储过
程就能做了的事用程序实现却需要写不少代码,并且与数据库大量交换数据,还要负责与客户端交换
数据,这就引起性能瓶颈,只好扩展中间层服务器,这也正好是中间层的初衷。但似乎总觉得牺牲的
太多,而得到的太少。
放在数据层,做成视图,存储过程,触发器,好处是:安全性高,速度快(不用编译优化SQL语句
),数据完整性好,业务规则统一管理,修改业务规则不用修改程序。缺点是:绑定在了特定的DBMS
上,不利于跨数据库,第二是不利于扩展(现在的主流数据库产品都还不是分布式数据库)。
如果放在中间层,数据库就成了一个数据存放地,强大的数据库功能被放弃了,而且一个存储过
程就能做了的事用程序实现却需要写不少代码,并且与数据库大量交换数据,还要负责与客户端交换
数据,这就引起性能瓶颈,只好扩展中间层服务器,这也正好是中间层的初衷。但似乎总觉得牺牲的
太多,而得到的太少。