गाइड

अपनी ऐप में डेटाबेस कैसे जोड़ें (बाद में डेटा खोए बिना)

अपनी ऐप में डेटाबेस जोड़ने के लिए एक मैनेज्ड रिलेशनल डेटाबेस चुनें (आम तौर पर Postgres), उसका कनेक्शन स्ट्रिंग सर्वर-साइड सीक्रेट में रखें, अपनी ऐप जिस भी चीज़ को स्टोर करती है उसके लिए एक टेबल बनाएँ, और डेटा पढ़ने-लिखने का काम आपका बैकएंड करे, ब्राउज़र नहीं। अगर आप AI ऐप बिल्डर से बना रहे हैं, तो आम तौर पर बस इतना कहना काफ़ी होता है कि "यह डेटाबेस में सेव करो" और एजेंट टेबल और कोड सेट कर देता है; आपका काम डेटा को साफ़ तरीके से समझाना और यह जाँचना है कि वह सच में सेव हो रहा है।

इस गाइड में बताया गया है कि डेटाबेस कब चाहिए, मुख्य विकल्प क्या हैं, अपने डेटा को कैसे समझाएँ, और वे गलतियाँ जिनसे डेटा खोता या लीक होता है।

आपकी ऐप को डेटाबेस कब चाहिए

डेटाबेस तब चाहिए जब आपकी ऐप को पेज बंद होने के बाद भी कोई चीज़ याद रखनी हो, या लोगों के बीच डेटा साझा करना हो। आम संकेत ये हैं:

  • विज़िटर कुछ सबमिट करते हैं: फ़ॉर्म, साइन-अप, बुकिंग या ऑर्डर
  • यूज़र्स के पास अकाउंट हैं जिनमें उनका अपना सेव किया हुआ कंटेंट है
  • एडमिन को वह देखना या बदलना है जो दूसरों ने बनाया
  • आपको समय के साथ रिपोर्ट या गिनती चाहिए

अगर आपकी साइट स्टैटिक है, जैसे पोर्टफ़ोलियो या सिंपल लैंडिंग पेज जहाँ सबको एक ही कंटेंट दिखता है, तो डेटाबेस की ज़रूरत नहीं है। अगर आपको नहीं पता कि डेटाबेस असल में क्या होता है, तो पहले डेटाबेस क्या है पढ़ लें।

आपके विकल्प

विकल्पयह क्या हैकिसके लिए अच्छाट्रेड-ऑफ़
आपके ऐप बिल्डर का बनाया डेटाबेसआपके प्रोजेक्ट के लिए बनाया और जोड़ा गया डेटाबेसAI बिल्डर से बनी ज़्यादातर ऐपउस प्लेटफ़ॉर्म की होस्टिंग से बँधा; एक्सपोर्ट और बैकअप उसी प्लेटफ़ॉर्म पर निर्भर
मैनेज्ड Postgres या MySQLएक होस्टेड रिलेशनल डेटाबेस जिसे आप अलग से साइन-अप करके लेते हैंऐसी ऐप जिन्हें आप खुद होस्ट करते हैं, या जो कई सेवाएँ साझा करती हैंकीज़, कनेक्शन की सीमा और प्लान आपको खुद संभालने होते हैं
Backend-as-a-serviceएक ही प्रोडक्ट में डेटाबेस, ऑथ, स्टोरेज और APIफ़्रंटएंड-भारी ऐप जिन्हें तैयार लॉगिन चाहिएसीखने के लिए ज़्यादा प्लेटफ़ॉर्म-विशिष्ट कॉन्सेप्ट
डॉक्यूमेंट (NoSQL) डेटाबेसलचीले JSON जैसे डॉक्यूमेंट स्टोर करता हैबहुत अनियमित डेटारिश्ते और रिपोर्टिंग मुश्किल होते हैं
स्प्रेडशीट को डेटाबेस बनानाAPI के ज़रिए Google Sheets जैसी शीटछोटे इंटरनल टूल, प्रोटोटाइपधीमा, असली कंस्ट्रेंट नहीं, एक साथ एडिट होने पर टूट जाता है

ज़्यादातर छोटी और मध्यम वेब ऐप के लिए Postgres जैसा रिलेशनल डेटाबेस सही डिफ़ॉल्ट है। यह रिश्तों को अच्छे से संभालता है (एक ग्राहक के कई ऑर्डर), डेटा को सुसंगत रखता है, और बाद में SQL से सवालों के जवाब निकालने देता है। सरल भाषा में समझने के लिए Postgres क्या है पढ़ें।

बनाने से पहले अपने डेटा को समझाएँ

सबसे उपयोगी काम यह है कि आप लिख लें कि आपकी ऐप कौन सी चीज़ें स्टोर करती है और वे आपस में कैसे जुड़ी हैं। इसके लिए डेटाबेस की भाषा ज़रूरी नहीं है। एक बुकिंग ऐप के लिए:

  • ग्राहक: नाम, ईमेल, फ़ोन
  • सेवाएँ: नाम, अवधि, कीमत
  • बुकिंग: कौन सा ग्राहक, कौन सी सेवा, शुरू होने का समय, स्टेटस (pending, confirmed, cancelled)

यह तीन टेबल हैं। "कौन सा ग्राहक" और "कौन सी सेवा" इनके बीच लिंक (foreign keys) बन जाते हैं। इसे शुरू में ठीक करना किसी भी तकनीक के चुनाव से ज़्यादा मायने रखता है, क्योंकि असली रो वाले डेटा का ढाँचा बदलना पेज के लेआउट बदलने से कहीं ज़्यादा मुश्किल है।

कुछ मोटे नियम:

  • हर तरह की चीज़ के लिए एक टेबल। ऑर्डर को ग्राहक के किसी टेक्स्ट कॉलम में न भरें।
  • हर रो को एक ID और बनाने का समय दें। बाद में दोनों की ज़रूरत पड़ेगी।
  • सही टाइप इस्तेमाल करें। तारीखें डेट के रूप में, पैसे पूरे सेंट या डेसिमल टाइप में, टेक्स्ट के रूप में नहीं।
  • ज़रूरी फ़ील्ड को ज़रूरी चिह्नित करें। खराब डेटा को सिर्फ़ फ़ॉर्म नहीं, डेटाबेस भी रोके।

उदाहरण प्रॉम्प्ट

पूरा स्कीमा एक साथ न डालें, एक-एक फ़ीचर से शुरू करें:

इस ऐप में डेटाबेस जोड़ो। एक bookings टेबल बनाओ जिसमें ग्राहक का नाम, ईमेल, सेवा, शुरू होने का समय और स्टेटस हो (pending, confirmed, cancelled; डिफ़ॉल्ट pending)। बुकिंग फ़ॉर्म के सबमिशन उसमें सेव करो, सफलता का संदेश दिखाओ, और एक एडमिन पेज जोड़ो जो सबसे नई बुकिंग पहले दिखाए।

फिर उसे आगे बढ़ाएँ:

एक services टेबल जोड़ो (नाम, अवधि मिनटों में, कीमत सेंट में)। bookings में सेवा वाले खुले टेक्स्ट फ़ील्ड की जगह services से लिंक लगाओ, और मौजूदा बुकिंग को बिना हटाए माइग्रेट करो।

और उसे सख़्त बनाएँ:

पक्का करो कि सभी डेटाबेस रीड और राइट सर्वर पर हों। ब्राउज़र को कभी भी डेटाबेस का कनेक्शन स्ट्रिंग न मिले। इन्सर्ट करने से पहले ईमेल और शुरू होने के समय की जाँच सर्वर पर करो।

चरण-दर-चरण

  1. अपना डेटा लिस्ट करें जैसा ऊपर बताया गया है: चीज़ें, फ़ील्ड, और उनके बीच के लिंक।
  2. डेटाबेस बनाएँ। AI बिल्डर में चैट में माँगें। कहीं और मैनेज्ड Postgres इंस्टेंस बनाएँ और उसका कनेक्शन स्ट्रिंग कॉपी करें।
  3. कनेक्शन स्ट्रिंग को सीक्रेट के रूप में रखें (सर्वर पर एनवायरनमेंट वेरिएबल), कभी कोड में नहीं। देखें एनवायरनमेंट वेरिएबल और सीक्रेट।
  4. टेबल बनाएँ। माइग्रेशन इस्तेमाल करें, यानी वर्ज़न वाली स्क्रिप्ट जो स्कीमा बदलती हैं, ताकि बदलाव दोहराए जा सकें और पलटे जा सकें।
  5. सर्वर रूट बनाएँ जो रो बनाएँ, पढ़ें, अपडेट करें और हटाएँ (CRUD)। ब्राउज़र इन्हीं रूट को कॉल करता है; वह डेटाबेस से सीधे बात नहीं करता।
  6. UI को उन रूट से जोड़ें: फ़ॉर्म जो सेव करें, लिस्ट जो लोड हों, और खाली होने पर दिखने वाले संदेश।
  7. स्थायी रहने की जाँच करें। कुछ सबमिट करें, पेज रीलोड करें, फिर किसी दूसरे ब्राउज़र में खोलें। अगर डेटा वहाँ नहीं है, तो वह डेटाबेस में सेव ही नहीं हुआ था।
  8. एक्सेस जाँचें। दूसरे यूज़र से लॉग इन करें और देखें कि आप पहले यूज़र का डेटा न देख और न बदल सकते हैं।
  9. पब्लिश करें, फिर लाइव URL पर दोबारा जाँचें, क्योंकि प्रकाशित ऐप का कनेक्शन आपके प्रीव्यू से अलग हो सकता है।

आम गलतियाँ

  • ब्राउज़र में सेव करके सोचना कि वह सेव हो गया। localStorage तब तक ठीक लगता है जब तक कोई दूसरे डिवाइस पर ऐप न खोले। हमेशा दूसरे ब्राउज़र में टेस्ट करें।
  • कनेक्शन स्ट्रिंग फ़्रंटएंड कोड में डालना। फ़्रंटएंड कोड कोई भी पढ़ सकता है। इससे उसे आपका पूरा डेटाबेस मिल जाता है।
  • एक्सेस चेक न होना। "मेरे ऑर्डर दिखाओ" में लॉग इन यूज़र से फ़िल्टर सर्वर पर होना चाहिए, UI में नहीं। AI से बनी ऐप में यह सबसे आम सुरक्षा छेद है; हमारी सुरक्षा चेकलिस्ट इसे कवर करती है।
  • विनाशकारी स्कीमा बदलाव। "टेबल का नाम बदलो" या "स्ट्रक्चर बदलो" कहने पर टेबल ड्रॉप करके फिर बनाई जा सकती है। जब असली डेटा मौजूद हो, तो कहें "मौजूदा रो माइग्रेट करो, कुछ मत हटाओ"।
  • डेटाबेस में फ़ाइलें स्टोर करना। इमेज और PDF फ़ाइल स्टोरेज में रहनी चाहिए, टेबल में सिर्फ़ उनका URL या की। देखें ऐप में फ़ाइल अपलोड कैसे जोड़ें।
  • बैकअप न होना। ग्राहक आने से पहले जान लें कि आपका प्लेटफ़ॉर्म बैकअप कैसे लेता है और उसे कैसे वापस लाया जाता है।

चेकलिस्ट

  • हर तरह की चीज़ की अपनी टेबल है, जिसमें ID और बनाने का समय हो
  • ज़रूरी फ़ील्ड और टाइप डेटाबेस द्वारा लागू होते हैं
  • कनेक्शन स्ट्रिंग सिर्फ़ सर्वर-साइड सीक्रेट में है
  • सभी रीड और राइट सर्वर रूट से होते हैं
  • हर यूज़र सिर्फ़ अपनी रो पढ़ और बदल सकता है
  • डेटा रीलोड के बाद बचा रहता है और दूसरे ब्राउज़र में दिखता है
  • स्कीमा बदलाव माइग्रेशन से होते हैं और मौजूदा रो बचाते हैं
  • आप जानते हैं कि बैकअप और रीस्टोर कैसे काम करते हैं
  • पब्लिश के बाद लाइव ऐप को टेस्ट किया गया है

Mythex में डेटाबेस जोड़ना

Mythex पर हर प्रोजेक्ट को अपना समर्पित Postgres डेटाबेस मिल सकता है, Free और Pro दोनों पर। आपको आम तौर पर अलग से "attach" बटन नहीं दबाना पड़ता: चैट में माँगें ("waitlist ईमेल डेटाबेस में सेव करो") या /database टाइप करें, और कनेक्शन की जानकारी वर्कस्पेस और आपकी प्रकाशित ऐप में डाल दी जाती है। प्रोजेक्ट सेटिंग्स दिखाती है कि डेटाबेस सक्रिय है या नहीं।

डेटाबेस 5 मिनट की निष्क्रियता के बाद सो जाता है और अगली रिक्वेस्ट पर जाग जाता है। प्रकाशित उपयोग के लिए सिर्फ़ उतने समय का शुल्क लिया जाता है जितनी देर वह सच में जागा रहा, और यह उसी क्रेडिट बैलेंस से कटता है जिसे आप बिल्डिंग में इस्तेमाल करते हैं। अगर पब्लिश के बाद डेटाबेस जोड़ा है, तो लाइव ऐप को उसे लेने के लिए फिर से पब्लिश करें।

डॉक्स में Database और Build a CRUD app रेसिपी देखें। प्रति-यूज़र डेटा के लॉगिन वाले हिस्से के लिए अपनी ऐप में लॉगिन कैसे जोड़ें पढ़ें।

सवाल

क्या मेरी ऐप के लिए डेटाबेस ज़रूरी है?

जैसे ही आपकी ऐप को विज़िट के बीच कोई चीज़ याद रखनी हो या यूज़र्स के बीच डेटा साझा करना हो, तब डेटाबेस चाहिए: साइन-अप, ऑर्डर, बुकिंग, पोस्ट या सेटिंग्स। सिर्फ़ एक स्टैटिक वेबसाइट, जो सबको एक जैसा कंटेंट दिखाती है, उसे डेटाबेस की ज़रूरत नहीं होती।

छोटी वेब ऐप के लिए कौन सा डेटाबेस इस्तेमाल करूँ?

ज़्यादातर छोटी वेब ऐप के लिए Postgres जैसा रिलेशनल डेटाबेस एक सुरक्षित डिफ़ॉल्ट विकल्प है। यह यूज़र्स, ऑर्डर, आपसी रिश्तों और रिपोर्टिंग को अच्छे से संभालता है, इसका सपोर्ट बहुत व्यापक है, और छोटे पैमाने पर आप इससे जल्दी आगे नहीं निकलते।

क्या डेटाबेस की जगह डेटा ब्राउज़र में स्टोर कर सकते हैं?

localStorage जैसा ब्राउज़र स्टोरेज सिर्फ़ एक डिवाइस और एक ब्राउज़र में रहता है, और यूज़र उसे कभी भी साफ़ कर सकता है। थीम चुनने जैसी पसंद के लिए यह ठीक है, लेकिन ऐसी किसी चीज़ के लिए नहीं जो आपको या दूसरे यूज़र्स को बाद में देखनी हो।

क्या Mythex में डेटाबेस शामिल है?

हाँ। Mythex प्रोजेक्ट को Free और Pro दोनों प्लान पर अपना अलग Postgres डेटाबेस मिल सकता है। आप चैट में माँगते हैं या /database कमांड इस्तेमाल करते हैं, और कनेक्शन की जानकारी अपने-आप डाल दी जाती है। इसका खर्च उसी क्रेडिट बैलेंस से कटता है जिससे बिल्डिंग होती है।

Mythex · Pricing · AI से कुछ भी बनाएँ · वेबसाइट और ऐप टेम्पलेट · Mythex की तुलना · AI से ऐप बनाने की शब्दावली · AI से ऐप बनाने के फ्री टूल · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)