广州暨华电脑学校
咨询热线:020-85566216

诚        毅        精      勤

当前位置:所在位置: 广州电脑培训 >> 电脑技术 >> net >> 正文

.Net中的反射

发布时间:2018/2/26 13:51:10 内容来源::广州暨华电脑学校 点击:

  此时,很多开发人员会在数据库中建立一张小表,叫做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控件的数据源。

  这个表几乎从不改动。

  • 上一篇电脑技术:
  • 下一篇电脑技术:
  • 学校简介 |专业课程 | 学生就业 | 校园风光

    学校地址:广州天河区五山路金华园区C座3楼307(华南理工大学南门旁)

    学校名称:广州暨华电脑培训学校:www.020bdqn.com.cn 联系电话:020-85566215

    2002-2018 广州青大教育信息咨询有限公司 版权所有 备案/许可证编号为:粤ICP备11083420号-11