तो मैं PHP के साथ अच्छी ऑब्जेक्ट उन्मुख प्रोग्रामिंग तकनीकों को अपनाने की कोशिश कर रहा हूं। मेरी परियोजनाओं के अधिकांश (सभी पढ़ें) में एक MySQL डेटाबेस शामिल है। मेरी तत्काल समस्या उन उपयोगकर्ताओं के मॉडल से संबंधित है जिन्हें मुझे विकसित करने की आवश्यकता है।PHP विरासत और MySQL
मेरी वर्तमान परियोजना में एजेंट और लीड्स हैं। एजेंट और लीड दोनों ही एक ही जानकारी वाले उपयोगकर्ता हैं। तो, जाहिर है, मैं एक वर्ग एजेंट चाहता हूं और एक वर्ग एक आम वर्ग उपयोगकर्ताओं का विस्तार करने के लिए नेतृत्व करता है। अब, मेरा प्रश्न निम्नानुसार है:
इन वस्तुओं को लोड करने के लिए एसक्यूएल को सर्वोत्तम तरीके से कैसे संभाला जाना चाहिए? जब मैं एजेंट या लीड को तुरंत चालू करता हूं तो मैं एकाधिक SQL कथन निष्पादित नहीं करना चाहता हूं। हालांकि, तर्क मुझे बताता है कि जब उपयोगकर्ता कन्स्ट्रक्टर को निकाल दिया जाता है, तो इसे एजेंटों और लीड्स (उपयोगकर्ता नाम, पासवर्ड, ईमेल, संपर्क जानकारी इत्यादि) के बीच सामान्य जानकारी लोड करने के लिए SQL कथन निष्पादित करना चाहिए। तर्क मुझे यह भी बताता है कि जब एजेंट या लीड कन्स्ट्रक्टर निकाल दिया जाता है, तो मैं एजेंटों या लीड्स क्लास के लिए अद्वितीय डेटा लोड करने के लिए SQL निष्पादित करना चाहता हूं .... लेकिन, फिर भी, तर्क मुझे यह भी बताता है कि 2 निष्पादित करना एक बुरा विचार है SQL स्टेटमेंट हर बार जब मुझे एजेंट या लीड की आवश्यकता होती है (क्योंकि प्रत्येक में से हजारों हो सकते हैं)।
मैंने उदाहरणों की खोज करने की कोशिश की है कि इसे आम तौर पर सफलता के साथ कैसे संभाला जाता है ... शायद मैं सिर्फ गलत चीज़ खोज रहा हूं?
मुझे वास्तव में यह विचार पसंद है, मुझे लगता है। लेकिन जो चीज मुझ पर सबसे ज्यादा है, वह है कि सभी डेटा लोड करने के लिए एसक्यूएल को निष्पादित करना है ... मैं इसे उपयोगकर्ता वर्ग में नहीं डाल सकता क्योंकि इस प्रकार के आधार पर, मुझे अलग-अलग एसक्यूएल की आवश्यकता होगी। मैं इसे सभी एजेंट और लीड क्लास में नहीं रखना चाहता क्योंकि बहुत से कोड समान होंगे और मैं प्रतिलिपि और पेस्ट से बचना चाहता हूं ... आदर्श रूप से, मैं चाहता हूं कि उपयोगकर्ता वर्ग लोड करने में सक्षम हो सामान्य जानकारी और एजेंट/लीड कक्षाओं को अनूठी जानकारी लोड करने के लिए ...... लेकिन फिर जब मैं एजेंट या लीड को तुरंत चालू करता हूं, तो मैं 2 एसक्यूएल स्टेटमेंट निष्पादित कर रहा हूं, जो अवांछनीय है ..... – SpaDusA
आप इसे कर सकते हैं 1 एसक्यूएल कथन में। हालांकि मुझे बताएं, आप किसी विशेष उपयोगकर्ता को लोड करने के लिए क्या उपयोग कर रहे हैं? आप क्या पास करते हैं एक आईडी? कुछ और? – cletus
मेरे पास 2 लोड फ़ंक्शन हैं: loadAll और loadById। प्रत्येक लीड/एजेंट का पहला नाम, अंतिम नाम, उपयोगकर्ता नाम, पासवर्ड, 2 फोन नंबर, ईमेल पता होता है। एक लीड में रुचि का क्षेत्र है और 'आपने हमारे बारे में कैसे सुना है'। एक एजेंट के पास कवरेज क्षेत्र होता है, और वे कौन सी भाषा बोलते हैं। – SpaDusA