?
广州电脑培训暨华官网
  • 广东省软件工程师实训基地
  • 广东省高薪就业培训中心

  • 广东省网络工程师实训基地
  • 广东省电脑人才培训中心

您现在的位置:所在位置: 广州电脑培训 >> 电脑技术 >> net >> 正文    >

.Net中的反射
  

  此时,很多开发人员会在数据库中建立一张小表,叫做BookingStatus(预订状态),然后将如上状态加入进去,就好像这样:

  

  如同城市(City)表一样,在系统的其他表,比如说酒店订单表(HotelOrder)中,通过字段StatusId引用这个表来获取酒店预订状态。然而,几个月以后,虽然看上去和城市表的用法一样,结果却发现这个表只在数据库做联合查询或者 只在程序中调用,却从来不做修改,因为预订流程确定下来后一般是不会变更的。在应用程序中,也不会给用户提供对这个表记录的增删改操作界面。

  而在程序中调用这个表时,经常是这种情况:我们需要根据预订状态对订单列表进行筛选。此时通常的做法是使用一个下拉菜单(DropDownList),菜单的数据源(DataSource),我们可以很轻易地通过一个SqlDataReader获得,我们将DropDownList的文本Text设为Status字段,将值Value设为Id字段。

  此时,我们应该已经发现问题:

  如果我们还有航班预订、游船预订,或者其他一些状态,我们需要在数据库中创建很多类似的小表,造成数据库表的数目过多。

  我们使用DropDownList等控件获取表内容时,需要连接到数据库进行查询,潜在地影响性能。

  同时,我们也注意到三点:

  此表一般会在数据库联合查询中使用到。假设我们有代表酒店订单的HotelOrder表,它包含代表状态的StatusId字段,我们的查询可能会像这样:Select *, (Select Status From BookingStatus Where Id = HotelOrder.StatusId) as Status From HotelOrder。

  在应用程序中,此表经常作为DropDownList或者其他List控件的数据源。

  这个表几乎从不改动。




  • 上一篇电脑技术:
  • 下一篇电脑技术:
  • ?