2010-12-07 5 views
3

私は患者の情報を収集するために病院によって使用される形式のハードコピーを与えられました!フォームはセクションに分割され、各セクションには多くのYES/NOチェックボックスがあります。例えば動的データベース設計?

、セクションの一つは、20以上の無関係なはい/いいえフィールドがある履歴セクションです:

喫煙(yesまたはno)

糖尿病(yesまたはno)

慢性肺(はいまたはいいえ) 。 。 。 。 。

標準テスト(はい/いいえ)、はい、(負または正)の結果がどのようであれば、 場合:

別のセクションでは、次のような質問があり、「ストレステストデータ」セクションです!私は、データベースを設計関係テーブルとそれらの間の関係を示すように求めています

(低いか高いか、中間の範囲を何であるかを正(...:S:Sこれはルックスです「学生クラスデータベース」や「CD会社データベース」のようなものはありません。来た!これはまさに私は知っている...ダイナミック:s:s:

私はこのデータベースの設計を始める方法や、データベースを設計するために読んだり調べたり練習しなければならないものは何もありませんそのようなデータのために!

お願いします!

+0

@Paul:fair 'nuff、それは当時の1つです。 –

+0

@Matt:私は知っています。私は当時の自分を持っていた。 –

+0

私はこれはあなたが経験のない大きなプロジェクトのようです。私はあなたの上司に行き、あなたがこの種の仕事をしたことがないことを彼に伝えることをお勧めします。私はそれがうまくいかないデザインを提示するよりも、当初は誠実である方が良いと思います。ここであなたは "NO IDEA"を持っていて、あなたが働いているところでは誠実に行動しているということは誠実であった。 –

答えて

3

これら2つのSOの例を見てみましょう:あなたは、 "動的" とはどういう意味ですか

1

これを行うには2つの基本的な方法があります。どちらの場合も、患者のID番号、名前、連絡先情報などの患者テーブルがあります。

次に、このテーブルに列を追加することができます(つまり、喫煙者列は「1」、「0」は0)、患者の各属性に対応する列を追加できます。

もう1つ(もっと良いIMHO)は、患者テーブルを単独のままにして、属性テーブルを追加することです。属性表には、patientID、attributeName、およびattributeValueという列があります。だから喫煙者の場合は、患者IDを取得し、(id、 "smoker"、1)の属性表に行を追加し、そのような追加を続けます。次に、属性表から特定の患者に関するすべての情報を取得するためのクエリを作成する必要がありますが、それは別の課題です。

+0

一般に、データが大きく変化しない場合、動的アプローチはクエリにとって恐ろしいものです。クライアント側で表示するのは簡単ですが、このアプローチに対して良い質問をするのは恐ろしいことです。 * LEFT JOINS *の紛失* –

2

EAV (Entity Attribute Value) Database Designスキームを見てください。

動的データの場合にのみ、排他的に使用する必要はありません。あなたの質問のその部分を興味深くするでしょうか?はい。しかし、信じられないほどの柔軟性を買う。 Btw、私はいくつかのEHR/EMRプロジェクトにEAVスキームを使用しました。

+0

+1:過去にこのアプローチを使用しましたが、実際には非常にダイナミックなデータの方が効果的です:) – Juliet

0

リレーショナルデータベースで設計を進める前に、メンテナンスが容易かどうかを想像してみてください。実際には、これらの種類のシステムの多くは、リレーショナル・モデルを破壊しようとします。これはフォームを持ち、各フォームにフィールドがあり、フィールドのどれも互いに関連せず、各患者がフォームとフィールドのコピーを持っている、 等々。

私はこれをリレーショナルモデルより強くお勧めします。 Couch DBのようなプロジェクトに、テーブルやスキーマなどで見たことのあるモードではなく、ドキュメント中心のデータベースを調べます。

CouchDB、Mnesia、またはその他の非リレーショナルデータベースを覗き見てください。主題についての本を入手し、これらの種類のシステムを慣用的な方法で設計する最良の方法を見つけました。

実際には、これらの種類のシステムはエンティティ属性値データベースに似ていますが、索引付けされたものをうまく検索することができます。

1

Martin Fowlerの "Analysis Patterns"を見てください。彼はヘルスケアシステムの素敵なオブジェクトモデルを説明する素晴らしい仕事をしています。私はそれがあなたにデータモデルに関する良いアイディアを与えるかもしれないと思います。

オブジェクトで開始すると、残りの部分が表示されます。

0

を?あなたが保存される患者に関するかなり標準的なデータセットを持っているようです。私のアドバイスは、そのデータをモデル化することです:患者とその属性。アンケートをモデル化しようとしないでください。そのデータを収集する手段は無関係であり、フォーム設計はデータベース設計とはまったく関係ありません。