快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

企业级N Tier体系结构解决方案讨论(一)

我再举一个数据完整性(Integerity)的问题。例如网上报帐的系统,它需要两个相关的表,一个是帐务的记录表(loan_history),一个是帐务的清除表(loan_clear),每当在loan_clear表中增加一个记录条的时候,必须在相应的
loan_history表中清除相应的loan记录。那么我们将该过程写实现在App Server端上怎么办呢?有点难度,来两个SQL语句吧:
insert into loan_clear values(loan_id,*,*,*)        (1)

delete from
loan_history lh inner join loan_clear lc where lh.loan_id=lc.loan_id    (2)
那么万一在第一条语句执行完后,停电了怎么办(买UPS吧)?万一有人就执行第一条语句怎么办?这些在app Server端令人头痛的问题放到database端就不成问题了,我可以用事务处理来解决:
begin transaction
insert into loan_clear values(loan_id,*,*,*)    
delete from
loan_history lh inner join loan_clear lc where lh.loan_id=lc.loan_id
commit transaction
再将这个事务处理的过程写成一个Procedure。或者做个触发器(trigger)
Create Trigger fresh_loan on loan_clear
For insert
    delete from
loan_history lh inner join loan_clear lc where lh.loan_id=lc.loan_id
    好了,3H都讨论到了,我这里讨论的主要的是SQL Server系列,其实Oracle的体系结构(Frame)和解决的很多方案是和SQL Server一样的。不过一个是用了Transaction SQL,一个是用了PL/SQL。当然性能是有区别的,当然价格也是有区别的(得去找一个economical analysis engineering了)。希望我的这篇拙作能对各位开发者小有作用,不然就当笑谈了吧。
返回类别: 教程
上一教程: 关于解决商务平台ASP程序的源代码泄漏设想与思索
下一教程: ASP技巧集锦(官方权威版)-4

您可以阅读与"企业级N Tier体系结构解决方案讨论(一)"相关的教程:
· 企业级N Tier体系结构解决方案讨论(二)
· WEB环境下打印报表的CRYSTAL的解决方案
· 服务器端改XML冲突的解决方式讨论
· WEB打印设置解决方案二(利用SCRIPTX.CAB控件改变IE打印设置)
· ASP无组件上传进度条解决方案
    微笑服务 优质保证 索取样品