चूंकि appointmnent_id
Appointment
. की प्राथमिक कुंजी है , इस तालिका में एक 1:N
. है सभी 6 तालिकाओं के साथ संबंध।
यही वह स्थिति है जहां इन 6 तालिकाओं में शामिल होने से डुप्लिकेट डेटा वाली कई पंक्तियां उत्पन्न होंगी , यह एक Cartesian Product
की तरह है . उदाहरण के लिए यदि (केवल एक id=46
. के लिए ), वहाँ हैं:
PatientInvestigation
के लिए 3 पंक्तियाँPatientTreatmentMedicine
. के लिए 6 पंक्तियाँPatientFindings
के लिए 4 पंक्तियाँPatientDiagnosis
के लिए 2 पंक्तियाँPatientCC
के लिए 2 पंक्तियांPatientAdvice
के लिए 5 पंक्तियां
आपको 3x6x4x2x2x5 =1440
मिलेगा परिणाम सेट में पंक्तियाँ, जबकि आपको केवल 3+6+4+2+2+5 (+1) =23
की आवश्यकता है पंक्तियाँ। यह आवश्यकता से 60 गुना अधिक पंक्तियाँ (और कई अधिक स्तंभों के साथ) है।
यह बेहतर है यदि आप प्रत्येक क्वेरी में 6 अलग-अलग प्रश्नों को एक जॉइन टू वन (6 में से) टेबल के साथ करते हैं (और आधार तालिका से डेटा प्राप्त करने के लिए एक और क्वेरी Appointment
) और आवेदन कोड में 6 प्रश्नों के परिणामों को संयोजित करें . पहली तालिका में शामिल होने के लिए आधार क्वेरी और क्वेरी के लिए उदाहरण:
आधार तालिका :
SELECT
a.appointment_id,
a.patient_id
FROM
Appointment AS a
WHERE
a.appointment_id = 46
रोगी जांच में शामिल हों-1 :
SELECT
pi.investigation_name,
pi.investigation_id
FROM
Appointment AS a
JOIN
PatientInvestigation AS pi
ON pi.appointment_id = a.appointment_id
WHERE
a.appointment_id = 46