私は検査情報システム(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
...このデータの階層は、私の設計の他のラボグループ(血液化学、血清学など)でも繰り返されます...
もう1つの質問は、1つ以上のラボグループのメンバーになることができるコンポーネント(RBCなど)をどのように処理するかということです。
ラボグループ用に1つ、サブグループ1用に1つ、サブグループ2用に1つ、コンポーネント用に1つ、個別のテーブルを作成することで、問題の解決策をすでに実装しました。次に、このテーブルにそれぞれの外部キーを配置することにより、それらすべてを統合する別のテーブルを作成しました...唯一のトレードオフは、このテーブルの一部の行にnull値が含まれる可能性があることです。私は自分のデザインに満足していないので、誰かがそれを正しくする方法についてアドバイスをくれることを望んでいます。どんな助けでも大歓迎です。