私はMySQLとこのようなデータベース設計を使用しています。
このデータベースは病院向けの部品設計です。患者テーブルには、1.500.000を超える患者の記録があります。クリニックのテーブルには15のレコードがあります。ドクターテーブルには25の記録があります。診断テーブルには500以上のレコードがあります。out_conditionテーブルには10個のレコードがあります。
そして、テーブルtransaction_currentに関連するすべてのテーブル。終了後、トランザクションは履歴テーブルに移動しました。
これは悪いデザインですか?クエリ選択では、1人の患者をブラウズモードにするのに1分以上かかるためです。これが最良のリレーションデザインである場合、すべてのリレーションテーブル参照が含まれているトランザクションテーブルのselectクエリをどのように使用する必要がありますか。
助けてくれてありがとう。
編集:「申し訳ありません...私の画像デザインはどこにありますか?私の借り手だけがしますか?...」
これはサンプル選択クエリです
select transaction_current.registration_number,
transaction_current.Date_registration,
patient.mr_code,
patient.patient_name,
clinic.Poly_clinic_name,
doctor.doctor_name,
diagnose.diagnose_name,
out_condition.OC_name
from transaction_current,patient, clinic, doctor, diagnose, out_condition
where transaction_current.patient_code=patient.MR_code and
transaction_current.clinic_code=clinic.clinic_code and
transaction_current.doctor_code=doctor.doctor_code and
transaction_current.diagnose_code=diagnose.doagnose_code and
transaction_current.OC_code=Out_Condition.OC_code
and patient.patient_name = 'xxx%'
答えた:氏からの慎重な答えの後。rj45は、正規化が推奨されない場合があります。特に履歴データの場合。参照テーブルに変更がある場合は、履歴データも変更されます。このような場合...コードが医師を変更した場合、または削除された場合、レコードは変更履歴に従います。それが意志にないとき。極端な場合、関係コードが一致しないため、データ履歴は表示されません。どうもありがとうございました@rj45