2016-10-22 6 views
-4

私はプログラムを作成していますが、患者履歴セクションにはまっています。私は各患者のためにテーブルを作るべきかどうかは分かりませんが、私が作成したすべてのテーブルのためにプログラムはある時点で完全に遅くなります。私は本当にこれで岩底を打った。専門的なアドバイスが必要です私はまだプログラミングでは新しく、まだ学びたいと思っています。みんな助けが必要C#患者ごとに新しいテーブルを作成する必要がありますか?

+1

この質問は、C#やVisual Studio 2010とは関係ありません。データベース設計に関する質問です。 – pinkfloydx33

+0

私が作成した間違ったタグについてはお詫び申し上げます。私はまだプログラミングとこのウェブサイトを初めて利用しています。私はあなたの答えのためにたくさんのTHanksを作ることを将来の質問のために心に留めておきます^ _^ –

答えて

0

あなたはPatientテーブルとPatient-Historyテーブルを作成する必要があります。 Historyテーブルに格納する必要がある内容に依存するが、Patient-HistoryテーブルにはPatientテーブルへの外部キーが必要です。

+0

彼の歴史を含む別のテーブルに患者の名前を接続することは可能ですか? –

+0

前に書いたように、PatientテーブルとPatient-Historyを外部キーで関連付けます。 PatientテーブルにPatientIdという名前のフィールドを作成します。履歴テーブルで、Patient_FKという名前のフィールド(外部キーなど)を作成します。履歴テーブルに新しい行を挿入するたびに、その行にPatientIdを追加する必要があります。 –

0

ヒストリと患者ID(patientテーブルのID)を含むテーブルが1つだけ列内で参照される必要があります。したがって、簡単なクエリですべての患者の履歴を取得できます。

0

「データベース」のように新しいテーブルを意味していますか?これはいくつかのエンジンでは実行可能ですが、特定の要件がない限り(たとえば行単位のアクセス権を持たないエンジンで患者ごとの権限を分離する場合など)、IDを持つ患者のテーブルを使用する必要があります。 Patient Historyの表のPatient ID列。参照整合性(外部キーを使用)によってそれらをリンクします。

初心者の方はDatabase Normalizationをご覧ください。パフォーマンスのために(またはセキュリティのためにはまれに)Denormalizationが必要な場合もありますが、一般的なアドバイスは正規化されたデータベースの設計を作成し、必要に応じて非正規化することです。

+0

テーブルだけです。私は患者の名前を患者の歴史に結びつけることを考えていた。もし私のプログラムがちょうど患者を追加したら、それは良いグレードの笑を与えることができないと思うからだ。私は患者の歴史を保存する必要があります。患者にそれを接続して、何も間違っていることがないようにしてください。 –

+0

@JohnSheldonCo同じ名前の患者がいるときはどうしますか?あなたはその危険を冒すべきではありません。なぜなら、あなたは何らかの一意の識別を必要とするのです。 – Theraot

0

SQL 'table'はC# 'class'に多少似ています。したがって、各患者のコーディング時に新しいクラスを定義するのではなく、実行時に各患者のクラスのインスタンスをインスタンス化します。 SQLでは、各患者のCREATE TABLE PatientJoeBloggsではなく、INSERT INTO Patients VALUES ('Joe Bloggs' ...);です。

あなたのC#クラスの外観はわかりませんが、私の時間にはいくつかの患者の医療記録スキーマを見てきましたが、あなたはかなりのテーブルが必要であることを伝えることができます。いくつかの表には歴史的要素(相談、薬物療法など)があるものもあれば、(例えば親族の次のものなど)他の表もあります。がんばろう!

関連する問題