2010-11-19 42 views
1

我目前正在存儲與我的代碼中的靜態變量內的相關信息,包括數據庫ID的測試列表。這裏有一個例子:更好的方式來存儲數據庫ID和查找名稱

public static class IsokineticTests 
{ 
    // Cervical Spine Group 
    public static MyopathologyTest NeckFlexors = MyopathologyTest.Create(600, "Neck Flexors"); 
    public static MyopathologyTest AnteriorObliques = MyopathologyTest.Create(601, "Anterior Obliques"); 
    public static MyopathologyTest NeckExtensors = MyopathologyTest.Create(602, "Neck Extensors"); 
    public static MyopathologyTest PosteriorObliques = MyopathologyTest.Create(603, "Posterior Obliques"); 
    public static MyopathologyTest LateralFlexion = MyopathologyTest.Create(604, "Lateral Flexion"); 

    // Shoulder Group 
    public static MyopathologyTest ShoulderAbductors = MyopathologyTest.Create(610, "Shoulder Abductors"); 
    public static MyopathologyTest ShoulderExtensors = MyopathologyTest.Create(611, "Shoulder Extensors"); 
    public static MyopathologyTest ShoulderFlexors = MyopathologyTest.Create(612, "Shoulder Flexors"); 
    public static MyopathologyTest ShoulderLateralRotators = MyopathologyTest.Create(613, "Shoulder Lateral Rotators"); 
    public static MyopathologyTest ShoulderMedialRotators = MyopathologyTest.Create(614, "Shoulder Medial Rotators"); 
} 

這些後來就習慣了創建測試組通過其他靜態屬性get方法:

public static class IsokineticTestGroups 
{ 
    public static IsokineticTestGroup CervicalSpine 
    { 
     get 
     { 
      return IsokineticTestGroup.Create("Cervical Spine", 
        new List<MyopathologyTest> 
         { 
          IsokineticTests.NeckFlexors, 
          IsokineticTests.AnteriorObliques, 
          IsokineticTests.NeckExtensors, 
          IsokineticTests.PosteriorObliques, 
          IsokineticTests.LateralFlexion 
         }); 
     } 
    } 
} 

我現在遇到的問題是基本上沒有辦法來查找Myopathology測試一個特定的ID。一種解決方案是創建一個字典,並手動將所有這些測試插入字典中,並將ID作爲關鍵字。這似乎重複了很多代碼。

什麼是正確的方式來執行這樣的事情?我在想我需要將測試數據外部化,在運行時加載測試並在運行中生成適當的查找表和組。這是我應該看的正確的方法還是有更好的方法?

+0

爲什麼不將所有這些數據(包括組)存儲在數據庫中? – BobbyShaftoe 2010-11-19 02:09:51

+0

我已經在測試結果中使用了SQLite數據庫,而且我想我的想法是將來會讓一些數據變得太難。然而,我認爲沒有理由,現在你和Tim提到它,我不能擁有包含這些信息的單獨數據庫。 – 2010-11-19 02:15:11

回答

2

爲什麼不將測試信息保存在SQLite等數據庫中,並使用ADO.NET庫按需按需提取數據?響應時間幾乎是瞬間的,因此您無需在字典中存儲多個測試對象。

+0

那麼,這是一個將運行在客戶端的應用程序。數據庫ID引用存儲測試結果的SQLite表中的TestID字段。爲了最初在數據庫中填充測試,它需要仍然在代碼或外部存儲測試,然後在初始化時填充數據庫,然後在將來添加測試需要更新用戶的數據庫。聽起來這種方法變得更加複雜。也許我應該將它們存儲在單獨的數據庫中,而不是... – 2010-11-19 02:12:12

相關問題