0

WebMD와 비슷한 증상 검사기를 만들려고합니다. 사용자가 증상을 입력하고 입력을 기반으로 질병을 암시합니다. 나는 모든 증상을 담고있는 테이블과 모든 질병이 담긴 테이블 두 개를 가지고 있습니다. 하지만이 두 테이블을 연결하는 방법을 모릅니다. 나는 다음과 같은 접근법을 찾을 수있다.증상 검사기 응용 프로그램에 대한 데이터베이스 디자인

+-----------------+----------+----------+----------+--------+----------+ 
|  Disease  | Symptom1 | Symptom2 | Symptom3 | Gender | AgeGroup | 
+-----------------+----------+----------+----------+--------+----------+ 
| Some Disease | Yes  | No  | Yes  | All | 19-35 | 
| Another Disease | No  | Yes  | Yes  | Male | All  | 
+-----------------+----------+----------+----------+--------+----------+ 

하지만이 테이블의 열로서 "증상"테이블의 모든 레코드를 포함해야하고 나는 새로운 증상을 추가해야하는 경우에 문제가있을 것으로 중복입니다. 이것을 구성하는 더 좋은 방법이 있습니까? 아니면 이것을 달성하기 위해 더 나은 대체 접근법 (제 3 자 API?)이 있습니까?

답변

1

질병, 증상 및 "해독"이라는 세 가지 테이블을 갖는 것이 훨씬 낫습니다. 첫 번째 두 개는 기본 키와 이름으로 구성된 간단한 테이블입니다 (질병 테이블은 위와 같이 하나 또는 두 개의 추가 필드를 가질 수 있습니다). 반면 세 번째 테이블은 두 개의 다른 테이블을 연결하는 '조인 테이블'입니다. 이 표는 전염병 표와 1 차적인 증후군 표의 주요 표식으로 만 구성 될 것이지만, 추가 정보를 제공 할 여분의 장을 추가하는 것이 가능할 수도 있습니다.

나는 최근에 폐렴이 있었기 때문에 증상을 알았습니다. '질병'테이블은 폐렴을위한 튜플을 가질 것이다. '증상'테이블에는 '발열', '마른 기침', '젖은 기침', '폐 소리'등과 같은 튜플이 있고 '해독'테이블에는 이러한 증상을 폐렴과 연관시키는 튜플이 있습니다.

다른 증상을 추가하려는 경우 테이블 구조에 문제가 있습니다. 제가 설명한 것은 문제를 다루는 표준 방법입니다.

+0

유용했습니다. 감사! –