0

나는 환자의 LabTestResult에서 가져 와서 데이터베이스에 저장하는 API 인터페이스를 가지고 있습니다. 실험실 테스트 결과의 결과 열은 문자열 (의사의 긴 텍스트), 정수 값 또는 +/- (나는 부울 값을 사용합니다) 중 하나 일 수 있습니다.데이터베이스에 다른 유형의 값을 가진 상속

현재 3 개의 열 (text_result, integer_result, sign_result)이있는 데이터베이스가 있으며 각 labtestresult에 대해 하나의 필드가 있습니다.

우선이 방법을 사용하는 것이 맞습니까? 또는 결과 값이 다른 유형의 세 개의 다른 테이블을 가질 필요가 있습니까?

또한 상속을 사용하고 기본 모델 인 LabTestResult가 있으며 TextLabTestResult, IntegerLabTestResult, SignLabtestResult라는 세 개의 모델이 있다고 생각합니다.

그래서 지금 내 질문은 컨트롤러 (API)에 결과가 문자열 인 경우 결과가 문자열 인 경우 TextLabTestResult.new 또는 상위 모델 LabTestResult에 로직이 있어야하고 case 문은 TextLabTestResult 등의 문자열이있는 경우에 사용합니다.

나는 이것을 설명하는 디자인 패턴이있는 것처럼 느껴지고, 여기에 뭔가 빠져있을 수 있습니다. 더 좋은 디자인이 될 수 있습니다.

답변

0

무엇인가를 설계 할 때는 항상 가장 간단한 옵션을 선택하십시오. 결과가 텍스트, 숫자 또는 + 또는 - 일 수있는 경우 텍스트로 나타냅니다.

결과 테이블이 전혀 필요없는 것처럼 들리지도 않습니다. 결과를 lab_tests 테이블에 포함 시키면됩니다.

rails g model LabTest result:text