數據庫MODEL BLL類實現中的問題

現有表結構如下:
人員表:
  工號 姓名 性別 職位代碼 部門代碼 ……
部門表:
  部門代碼 部門名稱……外鍵關聯
職位表:
  職位代碼 職位名稱……外鍵關聯

類設計:

第一種:
  private string 工號
  private string 姓名
  private string 性別
  private string 職位代碼
  private string 部門代碼
第二種:
  private string 工號
  private string 姓名
  private string 性別
  private string 職位代碼
    private string 職位名稱
  private string 部門代碼
    private string 部門名稱

現在主體是人員,對人的操作主要有與DATAVIEW的綁定顯示,人的新增、更新、刪除等操作,
請問人員類要怎麼設計才能滿足以上幾個操作的要求?
第一種方法便於對人員的新增、更新及刪除,
第二種方法便於對顯示的操作,不需再作處理,顯示到界面中就是直接是中文名稱而不是代碼啦。

雖然顯示可以用如下SQL語句直接得到

select 人員表.*,部門表.部門名稱,職位表.職位名稱 from 人員表,部門表,職位表 where 人員表.部門代碼=部門表.部門代碼 and 人員表.職位代碼=職位表.職位代碼

但是還是想有一個方法類來實現,代碼如下

public interface IBaseProcessor  //IDAL ()
{
    void Delete(baseClass baseInfo);
    void Update(baseClass baseInfo);
    void Append(baseClass baseInfo);
}
public baseClass  //數據庫MODEL
{
  private string 工號
  private string 姓名
  private string 性別
  private string 職位代碼
  private string 部門代碼
    ...
}

public baseProcessor:IBaseProcessor  //BLL (實現增刪改)
{
    //自己實現去
}

public newClass:baseClass //數據庫MODEL派生 存放關聯表字段信息(對於1對1 1對多 多對多)
{
    private string 職位名稱
    private string 部門名稱
    ...
}

public interface INewProcessor   //IDAL  顯示類接口
{
    NewClassCollection Load();
    //或者
    DataTable Load();
}

public newProcessor:baseProcessor,INewProcessor  // 顯示類實現 BLL
{
    //自己實現INewProcessor
}

這樣加載顯示的部分只要關心INewProcessor接口,並實現它即可
保存的過程中只要關心IBaseProcessor在baseProcessor中實現接口的方法去處理
由於newClass是baseClass繼承下來,所以操作顯示都沒衝突。
只需創建newClass和newProcessor。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章