私は、医療行為のために患者に関する情報を収集するデータベースを持っています。この情報は複数のテーブルに分散されています。
- 患者 - 連絡先情報について
- PatientMedicalHistory - 現在の問題とは無関係の病状について
- PatientEpisode - 現在の訪問の財務情報
- PatientEpisodeReason - 患者が今日ここにいる理由に関するもの
患者の詳細を表示するときにメッセージが表示されるように、フラグ システムを導入したいと考えています。たとえば、患者が以前に心臓発作を起こしたことがある場合は、フラグを立てる必要があります (その情報は、PatientMedicalHistory にあります)。
私の現在のアプローチは、フラグの種類、フラグが参照しているテーブル/列、およびそのフラグを立てるために値が何であるかを定義するフラグルックアップテーブルを設定することです:
CREATE TABLE FlagType
(
ID INT PRIMARY KEY IDENTITY,
TypeName NVARCHAR(300) NOT NULL,
Colour NVARCHAR(100) NOT NULL,
Urgency INT NOT NULL
)
CREATE TABLE Flag
(
ID INT PRIMARY KEY IDENTITY,
FlagTypeID INT NOT NULL REFERENCES FlagType(ID),
TableName NVARCHAR(300) NOT NULL,
FieldName NVARCHAR(300) NOT NULL,
FlagValue NVARCHAR(300) NOT NULL
)
これはすべて非常にうまくいくように見えましたが、a) 混乱に似ていないストアド プロシージャ、または b) パフォーマンスを損なわない LINQ クエリのいずれかを作成しようとするのは難しいようです。
これに代わるものはありますか?問題は、上記の表のいずれかの列でフラグを定義できることです。これで合計約80列になります。