2
我有一個數據庫,可以捕獲與患者有關的醫療實踐信息。這些信息在多個表流傳:標記系統的數據庫設計
- 病人 - 有關聯繫信息
- PatientMedicalHistory - 對於不相關的當前問題
- PatientEpisode醫療條件 - 針對當前訪問
- PatientEpisodeReason財務信息 - 東西有關爲什麼患者今天在這裏
我想介紹一個標記系統,以便在提出pat時出現任何消息客戶詳細信息。因此,例如,如果患者以前曾有過心臟病發作,則需要標記該信息(該信息位於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列。
爲什麼患者沒有一個與他們相關的標誌列表? – 2012-07-25 02:10:02
別擔心,我得到你正在嘗試做的事,病人確實有一個標誌列表,並且該標誌告訴你它正在標記哪個表/行/列。 – 2012-07-25 02:13:52
這是正確的。該表格描述哪個表格應該具有哪個值以便提升標誌。它似乎並不是最好的方法,但想知道是否有更好的方法。 – Paul 2012-07-25 02:21:49