我正在设计一个实验室信息系统 (LIS),并且对如何为不同的实验室测试设计表格感到困惑。我应该如何处理具有多个值的属性的表,并且该属性的多个值中的每一个也可以具有多个值?
这是我的 LIS 设计中的一些数据...
HEMATOLOGY <-------- Lab group
**************************************************************
CBC <-------- Sub group 1
RBC <-------- Component
WBC
Hemoglobin
Hematocrit
MCV
MCH
MCHC
Platelet count
Hemoglobin
Hematocrit
WBC differential
Neutrophils
Lymphocytes
Monocytes
Eosinophils
Basophils
Platelet count
Reticulocyte count
ESR
Bleeding time
Clotting time
Pro-time
Peripheral smear
Malarial smear
ABO
RH typing
CLINICAL MICROSCOPY <-------- Lab Group
**************************************************************
Routine urinalysis <-------- Sub group 1
Visual Examination <-------- Sub group 2
Color <-------- Component
Turbidity
Specific Gravity
Chemical Examination
pH
protein
glucose
ketones
RBC
Hbg
bilirubin
specific gravitiy
nitrite for bacteria
urobilinogen
leukocyte esterase
Microscopic Examination
Red Blood Cells (RBCs)
White Blood Cells (WBCs)
Epithelial Cells
Microorganisms (bacteria, trichomonads, yeast)
Trichomonads
Casts
Crystals
Occult Blood
Pregnancy Test
...这种数据层次结构也在我设计的其他实验室分组中重复出现(例如血液化学、血清学等)...
另一个问题是,我将如何处理可以成为一个或多个实验室组成员的组件(例如,RBC)?
我已经通过制作单独的表格来解决我的问题,1 个用于实验室组,1 个用于子组 1,1 个用于子组 2,1 个用于组件。然后通过在该表中放置每个表的外键来创建另一个表以合并所有表...唯一的权衡是该表中的某些行可能具有空值。我对我的设计不满意,所以我希望有人能给我建议如何让它正确;任何帮助将不胜感激。