2010-11-19 8 views
1

Ich speichere derzeit eine Liste von Tests mit zugehörigen Informationen, einschließlich Datenbank-IDs, in statischen Variablen in meinem Code. Hier ein Beispiel:Bessere Möglichkeit zum Speichern von Datenbank-IDs und Lookup-Namen

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"); 
} 

Dieses dann gewöhnt eine Testgruppe zu erstellen, durch andere statische Eigenschaften Methoden erhalten:

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 
         }); 
     } 
    } 
} 

Das Problem, das ich jetzt habe, ist es im Wesentlichen keine Möglichkeit, die zum Nachschlagen MyopathologyTest für eine bestimmte ID. Eine Lösung wäre, ein Wörterbuch zu erstellen und alle diese Tests manuell in das Wörterbuch mit der ID als Schlüssel einzufügen. Dies scheint jedoch eine Menge Code zu wiederholen.

Was ist der richtige Weg, um so etwas zu sein, umzusetzen? Ich denke, ich muss die Testdaten externalisieren, während der Laufzeit in die Tests laden und die richtigen Look-Up-Tabellen und Gruppen im laufenden Betrieb generieren. Ist das der richtige Ansatz, den ich mir ansehen sollte, oder gibt es einen besseren Weg? mit ADO.NET Bibliotheken

+0

Warum speichern Sie nicht alle diese Daten einschließlich der Gruppen in einer Datenbank? – BobbyShaftoe

+0

Ich benutze bereits eine SQLite-Datenbank für die Testergebnisse unter anderem, und ich denke, dass mein Gedanke war, würde das Ändern einiger Daten in Zukunft zu schwer machen. Ich sehe jedoch keinen Grund, warum ich jetzt keine separate Datenbank mit diesen Informationen haben könnte, die Sie und Tim erwähnen. –

Antwort

2

Warum halten den Test nicht Informationen in einer Datenbank, wie SQLite, und die Daten auf einer Basis nach Bedarf holen? Die Antwortzeit ist praktisch sofort, so dass Sie nicht viele Testobjekte in einem Wörterbuch speichern müssen.

+0

Nun, dies ist eine Anwendung, die clientseitig ausgeführt wird. Die Datenbank-IDs verweisen auf ein TestID-Feld in einer SQLite-Tabelle, in der Testergebnisse gespeichert sind. Um die Tests zunächst in der Datenbank aufzufüllen, müssten die Tests weiterhin in Code oder extern gespeichert werden, um dann die Datenbank bei der Initialisierung aufzufüllen. Um später Tests hinzufügen zu können, muss die Datenbank eines Benutzers aktualisiert werden. Es klingt wie diese Methode wird nur komplexer. Vielleicht sollte ich diese lieber in einer separaten Datenbank speichern ... –

Verwandte Themen