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