2010-11-19 3 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"); 
} 

이 다음 다른 정적 속성이 방법을 얻을 통해 테스트 그룹을 만드는 데 사용 얻을 :

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

+0

나는 이미 다른 것들 사이에서 테스트 결과를 위해 SQLite 데이터베이스를 사용하고 있으며, 나는 미래의 일부 데이터를 너무 어렵게 만들 것이라고 생각했다. 그러나 나는 당신과 Tim이 언급 한이 정보를 담고있는 별도의 데이터베이스를 가질 수 없었습니다. –

답변

2

SQLite와 같은 데이터베이스에 테스트 정보를 보관하고 ADO.NET 라이브러리를 사용하여 필요에 따라 데이터를 가져 오지 않는 이유는 무엇입니까? 응답 시간은 거의 순간적이므로 많은 테스트 객체를 사전에 저장할 필요가 없습니다.

+0

글쎄, 이것은 클라이언트 측에서 실행될 응용 프로그램입니다. 데이터베이스 ID는 테스트 결과를 저장하는 SQLite 테이블의 TestID 필드를 참조합니다. 초기에 데이터베이스에 테스트를 채우려면 테스트를 코드 또는 외부에 저장 한 다음 초기화시 데이터베이스를 채우고 나중에 테스트를 추가하려면 사용자의 데이터베이스를 업데이트해야합니다. 이 방법이 좀 더 복잡 해지는 것 같습니다. 아마 나는 이것들을 대신에 별도의 데이터베이스에 저장해야합니다 ... –

관련 문제