廣州暨華電腦學校
咨詢熱線: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(華南理工大學南門旁)

    學校名稱:廣州暨華電腦培訓學校 聯系電話:020-85566215

    2002-2019 廣州青大教育信息咨詢有限公司 版權所有 備案/許可證編號為:粵ICP備11083420號-11

    今天30选5开奖公告