"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > मैंने PHP और MySQL के साथ एक चुनौतीपूर्ण बैकएंड समस्या का समाधान कैसे किया

मैंने PHP और MySQL के साथ एक चुनौतीपूर्ण बैकएंड समस्या का समाधान कैसे किया

2024-07-31 को प्रकाशित
ब्राउज़ करें:449

How I Solved a Challenging Backend Problem with PHP & MySQL

नमस्कार, मुझे ब्लॉग पोस्ट लिखे हुए कुछ समय हो गया है; खैर, यहां मैं अपने सामने आई सबसे चुनौतीपूर्ण समस्याओं में से एक के बारे में लिख रहा हूं और मैंने इसे कैसे हल किया इसका एक सिंहावलोकन।

चुनौतियाँ, विशेष रूप से वे चुनौतियाँ जो आपको कड़ी मेहनत करनी पड़ेंगी, एक बैकएंड डेवलपर के रूप में बच नहीं सकतीं। हाल ही में, PHP और MySQL का उपयोग करते हुए एक विज्ञापन नेटवर्क पर काम करते समय, मुझे विशिष्ट मानदंडों के आधार पर प्रकाशकों के लिए प्रति मिल लागत (सीपीएम) को अनुकूलित करने से संबंधित एक जटिल समस्या का सामना करना पड़ा। इस समस्या ने मेरे तकनीकी कौशल का परीक्षण किया और एक अमूल्य शिक्षण अनुभव प्रदान किया। इस पोस्ट में, मैं आपको बताऊंगा कि कैसे मैंने इस समस्या को चरण-दर-चरण हल किया, सामना की गई चुनौतियों और लागू किए गए समाधानों पर प्रकाश डाला। मुझे खुशी होगी अगर मुझे ऐसे सुझाव मिलेंगे कि इसे कुशलतापूर्वक कैसे लागू किया जाए या इसे बेहतर तरीके से कैसे अपनाया जाए।

समस्या

कार्य निम्नलिखित मानदंडों के आधार पर प्रकाशक के सीपीएम को समायोजित करना था:

  1. यदि पिछले 10 मिनट में 10 अलग-अलग आईपी पतों से क्लिक होते हैं तो 5% की वृद्धि होती है।
  2. यदि पिछले 10 मिनट में एक ही आईपी पते से 5 बार क्लिक होते हैं तो 8% की कमी आती है।
  3. यदि एक ही देश से लगातार 10 क्लिक होते हैं तो 2% की वृद्धि।

समाधान यात्रा

चरण 1: आवश्यकताओं को समझना

कार्यान्वयन में कूदने से पहले, मुझे आवश्यकताओं की स्पष्ट समझ की आवश्यकता थी। मैंने सीपीएम को समायोजित करने के लिए मानदंडों और वांछित व्यवहार की पुष्टि करने के लिए हितधारकों के साथ चर्चा की। प्रभावी ढंग से समाधान की योजना बनाने में यह प्रारंभिक कदम महत्वपूर्ण था।

चरण 2: डेटाबेस स्थापित करना

मैंने पहले ही अपना डेटाबेस और टेबल बना लिया है, साथ ही, प्रोजेक्ट पहले से ही लाइव था, इसलिए मुझे बस मानदंड जोड़ने की जरूरत थी। मैंने सुनिश्चित किया कि क्लिक ट्रैकिंग के लिए आवश्यक जानकारी संग्रहीत और समायोजित करने के लिए डेटाबेस और तालिका स्थापित की गई थी। तालिका स्कीमा में क्लिक टाइमस्टैम्प, आईपी पता और देश कोड संग्रहीत करने के लिए फ़ील्ड शामिल थे (ऐसे अन्य फ़ील्ड/कॉलम हैं जिन्हें मैं शामिल नहीं करूंगा क्योंकि वे इस पोस्ट के लिए वास्तव में महत्वपूर्ण नहीं हैं)।

चरण 3: क्लिक डेटा कैप्चर करना

इसके बाद, जब भी कोई उपयोगकर्ता किसी विज्ञापन पर क्लिक करता है तो मैंने आईपी पता और देश कोड प्राप्त करने और सहेजने के लिए एक फ़ंक्शन लागू किया। यह डेटा क्लिक तालिका में संग्रहीत किया गया था।

चरण 4: मानदंड जांच लागू करना

डेटा कैप्चर करने के साथ, अगला कदम मानदंड की जांच करने और तदनुसार सीपीएम को समायोजित करने के लिए तर्क को लागू करना था।

  1. अनूठे आईपी पते की जांच की जा रही है मैं COUNT फ़ंक्शन और DISTINCT कीवर्ड का उपयोग करके पिछले 10 मिनट में अद्वितीय आईपी पते की गणना करता हूं जो समूह में प्रत्येक पंक्ति के लिए अभिव्यक्ति का मूल्यांकन करता है और अद्वितीय, गैर-शून्य मानों की संख्या लौटाता है .
/** 
 * Get the count of unique IP addresses in the last 10 minutes
 */
$stmt = $pdo->prepare("
    SELECT COUNT(DISTINCT ip_address) AS unique_ips
    FROM clicks
    WHERE date_time >= NOW() - INTERVAL 10 MINUTE
");
$stmt->execute();
$unique_ips = $stmt->fetchColumn();

if ($unique_ips >= 10) {
    $cpm *= 1.05;
} else {
    /**
     * Here, I check for clicks from the same IP address
     * This is in the second condition
     * ...
     **/
}
  1. बार-बार आईपी पते की जांच की जा रही है फिर मैं SQL COUNT फ़ंक्शन का उपयोग करके पिछले 10 मिनट में दोहराए गए या गैर-अद्वितीय आईपी पते की जांच करता हूं।
/** 
 * Checking non-unique (repeated) IP addresses in the last 10 minutes
 * If the condition is true, decrease the CPM by 8%
 */
$stmt = $pdo->prepare("
    SELECT ip_address, COUNT(*) AS click_count
    FROM clicks
    WHERE timestamp >= NOW() - INTERVAL 10 MINUTE
    GROUP BY ip_address
    HAVING click_count >= 5
");
$stmt->execute();
$repeated_ips = $stmt->fetchAll();

if (count($repeated_ips) > 0) {
    $cpm *= 0.92;
} else {
    /**
     * Here, I check for consecutive clicks from the same country
     * This is in the third condition
     * ...
     **/
}
  1. एक ही देश से लगातार क्लिक की जांच की जा रही है यहां, मैं तीसरा मानदंड लागू करता हूं जो एक ही देश से लगातार क्लिक की जांच कर रहा है।
/** 
 * Checking clicks from the same country consecutively
 * If the condition is true, increase the CPM by 2%
 */
$stmt = $pdo->prepare("
    SELECT country_code
    FROM clicks
    ORDER BY timestamp DESC
    LIMIT 10
");
$stmt->execute();
$last_ten_clicks = $stmt->fetchAll(PDO::FETCH_COLUMN);

if (count(array_unique($last_ten_clicks)) === 1) {
    $cpm *= 1.02;
}

चरण 5: सीपीएम को अद्यतन करना

इस भाग के लिए, मैं प्रकाशक के सीपीएम को अपडेट करता हूं और इसका उपयोग उस विशेष क्लिक के लिए उसकी कमाई की गणना करने के लिए करता हूं।

ये परिणाम

इस समाधान को लागू करने से, विज्ञापन नेटवर्क अब उपयोगकर्ता के क्लिक डेटा के आधार पर सीपीएम को गतिशील रूप से समायोजित करता है। यह प्रकाशकों के लिए एक निष्पक्ष और अनुकूलित राजस्व मॉडल सुनिश्चित करता है, जो विज्ञापन नेटवर्क की समग्र प्रभावशीलता को बढ़ाता है।

मेरे बारे में और HNG इंटर्नशिप क्यों?

मैं किंग्सले गबुटेमु केफास हूं, एक बैकएंड डेवलपर जो स्केलेबल और कुशल सिस्टम बनाने का शौक रखता है। मैं एक समस्या समाधानकर्ता हूं, मुझे नई चीजें और कुछ करने के तरीके सीखना पसंद है। एक डेवलपर के रूप में, मैं चुनौतियों को हल करने से प्रेरित होता हूं, विशेष रूप से जटिल चुनौतियां जो मुझे गंभीर रूप से सोचने पर मजबूर करती हैं। मैं जानता हूं कि एचएनजी इंटर्नशिप मेरे लिए वास्तविक दुनिया की परियोजनाओं पर काम करके और उद्योग विशेषज्ञों से सीखकर एक डेवलपर के रूप में विकसित होने का एक अवसर है। मैं एचएनजी इंटर्नशिप के साथ अपनी यात्रा शुरू करने और तकनीकी समुदाय में योगदान देने के लिए उत्साहित हूं। मेरा मानना ​​है कि यह यात्रा मेरे कौशल को निखारेगी और प्रभावशाली परियोजनाओं में योगदान देगी और मुझे यकीन है कि एचएनजी प्रीमियम के लाभों से मुझे और अधिक लाभ होगा।

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/cyberking99/solving-a-challenging-backend-problem-with-php-h0l?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3