2.设计数据存储策略:SQL Server 2005应用开发

1.从架构模型到数据模型
****对象关系映射****
------用例或者用例场景是构架模型获得的结果. 通过序列化就把对象存储到数据库中,通过反序列化把从数据库中获得的数据转化为对象.
-----和客户进行交流和沟通:
        ----充分[了解客户需求]
        ----可控[能够达到里程碑]
-----界面元素和物件的对应要特别注意.

对象关系映射:
----遵循范式(如:出版社,对于一本书而言,他可以作为一个属性. 当出现同名的出版社时,就会出错. 因此,如果把出版社作为一个对象,这样以后扩展就很容易,因为,相同的出版社名称可以设计不同的ID)
----设计过程是一个螺旋上升的过程,每次都是在不同层次上完成系统的设计.
----保证数据完整性.这主要要求理解不同对象的关系.如:实体完整性,域完整性(列完整性,如email地址),引用完整性.
----找出实体和属性
----找出关系层
===不要把数据层和逻辑层混为一谈.


2.使用SQL Server 2005开发特性
 视图和存储过程都可以用来获取数据
 ----当需要查询得到的数据是一个表时 ,我们采用视图.
 --- 逻辑层和数据层的交互主要时通过视图和存储过程来交互.当然,可以加入更多的层,达到更为松散的耦合.
 
 触发器
 ------一类特殊的存储过程,负责的数据完整性可以采用触发器实现.效率较低.
 
 Native web service
 ---不依赖于ISS,可扩展性好.可以很好的和其他系统进行集成.
 service broker

3.数据层同业务逻辑层的分离


class customer{
 customer()
 {
 }
 ~customer()
 {
 }
  
 public int Age;
 public string name;
}
由于该类直接暴露了类属性,因此,必须隐藏内部实现.

private int _age;
public int age
{
  get{return _age }
  set { if(value>0) _age = value }
}
同样的可以对name属性进行处理.

如果该类要和数据库进行交互,就必须添加函数
public void saveTODb()
{
 //访问存储过程
}
public void loadFormDb()
{
 //访问视图
}

但是,这个类和数据库时紧耦合的,也就是说,如果数据库从SQLSERVER转化为其他类时,就必须对所有saveToDB和loadToDB发生改变,所有,我们必须进行修改.

把该类继承于接口 IDbProvider,并修改相关函数为:
public void saveTODb(IDbProvider pd)
{
 //访问存储过程
 pd.save(obj)
}
public void loadFormDb(IDbProvider pd)
{
 //访问视图
}

class SqlServerProvider : IDbProvider
{
 public void save(object obj);
}
class AccessProvider : IDbProvider
{
 public void save(object obj);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值