あなたのデータベース
最初から始めましょう。テーブルは、クライアントの待機時間を正常に計算して保存するために必要なすべてのバックエンド データです。
あなたのプライオリティテーブル
値が 1 つのpriority
テーブルがあります。それが最初の警報です。値が1つしかない場合は、別のテーブルのフィールドとして良くないですか? おそらくこれを患者の詳細と組み合わせると、クライアントの詳細だけですべての情報にアクセスできることになります。おそらく次のようなものです:
Client Table
ClientID ClientName ClientPriority
これは、クライアントの名前を使用して、その優先度を推測できることを意味します。
病気の表
Illness Table
IllnessID IllnessName IllnessLevel
これは、クライアントの病気で、あなたが彼らの IllnessLevel に到達できることを意味します。
あなたの待ち時間表
このままでいいと思います。別のテーブルに待ち時間があるということは、必要に応じて変更できることを意味します。私がお勧めするのは、それを変更することです。そのため、このようになります。数値は任意であり、優先順位に使用する値と病気の重症度に応じて、必要に応じて変更できます。
Expected_Waiting_time
Waiting_Time PatientScore
0 - 10 (mins) 10
30 - 60 5
60 - 90 1
あなたのプログラミングロジック
必要な情報を取得する
ここで、患者の詳細とその状態を取得する必要があります。たとえば、クライアントが自分の名前または ID をあなたに教えたとしましょう。通常、医師では、何らかの会員カードを提供し、そこから詳細を取得するため、ID を要求することはまったく普通のことです。
Client Inputs: ID 1
Client Illness: A Cold
クライアントの ID から、SQL を使用してデータベースを呼び出します。
SELECT * FROM Clients WHERE ClientID=:ID
ここで、準備済みステートメントを使用していることに注意してください。これらが何であるかわからない場合は、ここでそれらについて読む必要があります。
お客様の詳細を要求すると、お客様が優先されます。次に、あなたは彼らの病気に移ります。
SELECT * FROM Illness WHERE IllnessID = :IllnessID
ここでも単純な SQL ステートメントを使用して、病気に関するすべての詳細を取得します。
計算の実行
このセクションでは、スコアを計算するために、取得した値を使用して何かを行う必要があります。たとえば、患者の優先度が 10 で、患者がCritical
病気を示している場合、スコアは 20 であると言えます。
単純にデータベースにクエリを実行して、20 に最も近い値を取得します。これを行う方法がわからない場合は、この質問を読んで助けを求めてください。
そして出来上がり、待ち時間があります。