તમારી એપમાં ડેટાબેઝ કેવી રીતે ઉમેરવો (પછીથી ડેટા ગુમાવ્યા વિના)
તમારી એપમાં ડેટાબેઝ ઉમેરવા માટે, એક મેનેજ્ડ રિલેશનલ ડેટાબેઝ પસંદ કરો (સામાન્ય રીતે Postgres), તેની કનેક્શન સ્ટ્રિંગ સર્વર-સાઇડ સિક્રેટમાં રાખો, તમારી એપ સંગ્રહ કરે તે દરેક પ્રકારની વસ્તુ માટે એક ટેબલ બનાવો, અને તમારું બેકએન્ડ — બ્રાઉઝર નહીં — તેમાં વાંચન અને લખાણ કરે. જો તમે AI એપ બિલ્ડર વડે બનાવતા હો, તો સામાન્ય રીતે તમે ફક્ત "આને ડેટાબેઝમાં સેવ કરો" કહી શકો છો અને એજન્ટ ટેબલ અને કોડ સેટ કરી દે છે; તમારું કામ ડેટાને સ્પષ્ટ રીતે વર્ણવવાનું અને તે ખરેખર સચવાય છે કે નહીં તે ચકાસવાનું છે.
આ ગાઇડ આવરી લે છે કે ક્યારે ડેટાબેઝની જરૂર પડે, મુખ્ય વિકલ્પો, તમારા ડેટાનું વર્ણન કેવી રીતે કરવું, અને ડેટા ખોવાઈ કે લીક થવાનાં કારણરૂપ ભૂલો.
તમારી એપને ડેટાબેઝ ક્યારે જોઈએ
તમારી એપને ડેટાબેઝની જરૂર ત્યારે પડે છે જ્યારે તેને પેજ બંધ થયા પછી કંઈક યાદ રાખવાનું હોય, અથવા વપરાશકર્તાઓ વચ્ચે ડેટા શેર કરવાનો હોય. સામાન્ય સંકેતો:
- મુલાકાતીઓ કંઈક સબમિટ કરે: ફોર્મ, સાઇન-અપ, બુકિંગ, ઓર્ડર
- વપરાશકર્તાઓના પોતાના સાચવેલા કન્ટેન્ટ સાથે એકાઉન્ટ હોય
- એડમિનને બીજાઓએ બનાવેલું જોવું કે સુધારવું હોય
- સમય જતાં રિપોર્ટ કે ગણતરીઓ જોઈતી હોય
જો તમારી સાઇટ સ્ટેટિક હોય અને બધાને એક જ કન્ટેન્ટ દેખાતો હોય, જેમ કે પોર્ટફોલિયો અથવા સાદું લેન્ડિંગ પેજ, તો ડેટાબેઝની જરૂર નથી. ડેટાબેઝ શું છે તે ખબર ન હોય તો પહેલા ડેટાબેઝ શું છે વાંચો.
તમારા વિકલ્પો
| વિકલ્પ | તે શું છે | કેના માટે સારું | ગેરફાયદા |
|---|---|---|---|
| તમારા એપ બિલ્ડરથી બિલ્ટ-ઇન ડેટાબેઝ | તમારા પ્રોજેક્ટ માટે બનાવેલો અને જોડાયેલો ડેટાબેઝ | AI બિલ્ડર વડે બનેલી મોટાભાગની એપ | તે પ્લેટફોર્મના હોસ્ટિંગ પર આધારિત; એક્સપોર્ટ અને બેકઅપ પ્લેટફોર્મ પર નિર્ભર |
| મેનેજ્ડ Postgres અથવા MySQL | અલગથી સાઇન અપ કરીને લેવાતો હોસ્ટેડ રિલેશનલ ડેટાબેઝ | તમે જાતે હોસ્ટ કરો તેવી એપ, અથવા જે અનેક સેવાઓ શેર કરે | કી, કનેક્શન લિમિટ અને પ્લાન તમારે સંભાળવાના |
| બેકએન્ડ-એઝ-એ-સર્વિસ | ડેટાબેઝ સાથે ઓથ, સ્ટોરેજ અને API એક જ પ્રોડક્ટમાં | ફ્રન્ટએન્ડ-ભારે એપ જેને તૈયાર લોગિન જોઈએ | વધુ વિક્રેતા-વિશિષ્ટ ખ્યાલો શીખવા પડે |
| ડોક્યુમેન્ટ (NoSQL) ડેટાબેઝ | લવચીક JSON-જેવા ડોક્યુમેન્ટ સંગ્રહે | ખૂબ અનિયમિત ડેટા | સંબંધો અને રિપોર્ટિંગ મુશ્કેલ |
| સ્પ્રેડશીટને ડેટાબેઝ તરીકે | API દ્વારા Google Sheets અથવા સમાન | નાના આંતરિક ટૂલ, પ્રોટોટાઇપ | ધીમું, સાચા નિયંત્રણો નહીં, એક સાથે થતા ફેરફારોમાં તૂટે |
મોટાભાગની નાની અને મધ્યમ વેબ એપ માટે Postgres જેવો રિલેશનલ ડેટાબેઝ યોગ્ય ડિફોલ્ટ છે. તે સંબંધો સંભાળવામાં સારો છે (એક ગ્રાહક પાસે ઘણા ઓર્ડર હોય), ડેટાને સુસંગત રાખે છે, અને પછીથી SQL વડે પ્રશ્નોના જવાબ આપવા દે છે. સાદી ભાષામાં સમજૂતી માટે Postgres શું છે જુઓ.
બનાવતા પહેલાં તમારા ડેટાનું વર્ણન કરો
સૌથી ઉપયોગી કામ એ છે કે તમારી એપ જે વસ્તુઓ સંગ્રહ કરે છે અને તે એકબીજા સાથે કેવી રીતે જોડાય છે તે લખી લો. તમને ડેટાબેઝની જટિલ શબ્દાવલી જાણવાની જરૂર નથી. બુકિંગ એપ માટે:
- ગ્રાહકો: નામ, ઈમેલ, ફોન
- સેવાઓ: નામ, સમયગાળો, કિંમત
- બુકિંગ: કયો ગ્રાહક, કઈ સેવા, શરૂઆતનો સમય, સ્થિતિ (બાકી, કન્ફર્મ, રદ)
આ ત્રણ ટેબલ છે. "કયો ગ્રાહક" અને "કઈ સેવા" એ તેમની વચ્ચેની લિંક (ફોરેન કી) બની જાય છે. શરૂઆતમાં આ સાચું કરવું કોઈ પણ ટેક્નોલોજી પસંદગી કરતાં વધુ મહત્વનું છે, કારણ કે જે ડેટામાં પહેલેથી વાસ્તવિક રેકોર્ડ છે તેનો આકાર બદલવો પેજ લેઆઉટ બદલવા કરતાં વધુ મુશ્કેલ છે.
થોડા અનુભવ-આધારિત નિયમો:
- દરેક પ્રકારની વસ્તુ માટે એક ટેબલ. ઓર્ડરને ગ્રાહક પરના ટેક્સ્ટ કૉલમમાં ન ભરો.
- દરેક રોને ID અને બનાવ્યાનો સમય આપો. પછીથી બંનેની જરૂર પડશે.
- યોગ્ય પ્રકાર વાપરો. તારીખો તારીખ તરીકે, પૈસા પૂર્ણ સેન્ટ અથવા ડેસિમલ પ્રકારમાં, ટેક્સ્ટ તરીકે નહીં.
- જરૂરી ફીલ્ડને જરૂરી તરીકે ચિહ્નિત કરો. ફક્ત ફોર્મ નહીં, ડેટાબેઝ પણ ખરાબ ડેટા નકારે.
ઉદાહરણ પ્રોમ્પ્ટ
એક સમયે એક ફીચરથી શરૂ કરો, આખી સ્કીમા એકસાથે ન નાખો:
આ એપમાં ડેટાબેઝ ઉમેરો. ગ્રાહકનું નામ, ઈમેલ, સેવા, શરૂઆતનો સમય અને સ્થિતિ (બાકી, કન્ફર્મ, રદ; ડિફોલ્ટ બાકી) સાથે bookings ટેબલ બનાવો. બુકિંગ ફોર્મમાંથી મળેલા સબમિશન તેમાં સેવ કરો, સફળતાનો સંદેશ બતાવો, અને એડમિન પેજ ઉમેરો જે બુકિંગ નવાથી જૂના ક્રમમાં બતાવે.
પછી તેને વિસ્તારો:
services ટેબલ ઉમેરો (નામ, મિનિટમાં સમયગાળો, સેન્ટમાં કિંમત). bookings પરની મુક્ત-ટેક્સ્ટ સેવા ફીલ્ડને services સાથેની લિંકથી બદલો, અને હાલના બુકિંગને ડિલીટ કર્યા વિના માઇગ્રેટ કરો.
અને તેને કડક બનાવો:
ખાતરી કરો કે બધી ડેટાબેઝ વાંચણી અને લખાણ સર્વર પર થાય. બ્રાઉઝરને ક્યારેય ડેટાબેઝ કનેક્શન સ્ટ્રિંગ ન મળે. ઇન્સર્ટ કરતા પહેલાં સર્વર પર ઈમેલ અને શરૂઆતના સમયની ચકાસણી કરો.
સ્ટેપ બાય સ્ટેપ
- તમારો ડેટા યાદીબદ્ધ કરો ઉપર મુજબ: વસ્તુઓ, ફીલ્ડ, અને તેમની વચ્ચેની લિંક.
- ડેટાબેઝ બનાવો. AI બિલ્ડરમાં ચેટમાં માગો. બીજે ક્યાંય, મેનેજ્ડ Postgres ઇન્સ્ટન્સ બનાવો અને તેની કનેક્શન સ્ટ્રિંગ કોપી કરો.
- કનેક્શન સ્ટ્રિંગને સિક્રેટ તરીકે સાચવો (સર્વર પર એન્વાયર્નમેન્ટ વેરિએબલ), ક્યારેય કોડમાં નહીં. જુઓ એન્વાયર્નમેન્ટ વેરિએબલ અને સિક્રેટ.
- ટેબલ બનાવો. માઇગ્રેશન વાપરો — સ્કીમા બદલતી વર્ઝન્ડ સ્ક્રિપ્ટ — જેથી ફેરફારો પુનરાવર્તિત અને પાછા ફેરવી શકાય તેવા રહે.
- સર્વર રૂટ બનાવો જે રો બનાવે, વાંચે, અપડેટ કરે અને ડિલીટ કરે (CRUD). બ્રાઉઝર આ રૂટ કૉલ કરે; તે ક્યારેય સીધો ડેટાબેઝ સાથે વાત ન કરે.
- UI ને તે રૂટ સાથે જોડો: સેવ થતા ફોર્મ, લોડ થતી યાદીઓ, અને કંઈ ન હોય ત્યારે ખાલી સ્થિતિ.
- ટકાઉપણું ચકાસો. કંઈક સબમિટ કરો, પેજ રિલોડ કરો, અલગ બ્રાઉઝરમાં ખોલો. ડેટા ન દેખાય તો તે ડેટાબેઝમાં સેવ થયો નથી.
- એક્સેસ તપાસો. બીજા વપરાશકર્તા તરીકે લોગ ઇન કરો અને ખાતરી કરો કે તમે પહેલા વપરાશકર્તાનો ડેટા જોઈ કે બદલી ન શકો.
- પબ્લિશ કરો, પછી લાઈવ URL પર ફરી ચકાસો, કારણ કે પબ્લિશ થયેલી એપ તમારા પ્રીવ્યૂ કરતાં અલગ કનેક્શન વાપરી શકે.
સામાન્ય ભૂલો
- બ્રાઉઝરમાં સેવ કરીને વિચારવું કે તે ડેટાબેઝમાં સેવ થયું. localStorage કામ કરતું લાગે છે, જ્યાં સુધી કોઈ બીજા ડિવાઇસ પર એપ ન ખોલે. હંમેશા બીજા બ્રાઉઝરમાં ચકાસો.
- કનેક્શન સ્ટ્રિંગ ફ્રન્ટએન્ડ કોડમાં મૂકવી. ફ્રન્ટએન્ડ કોડ કોઈ પણ વાંચી શકે છે. એટલે તેમને આખો ડેટાબેઝ મળી જાય.
- એક્સેસ ચેક ન હોવા. "મારા ઓર્ડર બતાવો" માટે સર્વર પર લોગ ઇન વપરાશકર્તા દ્વારા ફિલ્ટર થવું જોઈએ, UI માં નહીં. AI વડે બનેલી એપમાં આ સૌથી સામાન્ય સુરક્ષા ખામી છે; અમારી સુરક્ષા ચેકલિસ્ટ તેને આવરી લે છે.
- વિનાશક સ્કીમા ફેરફારો. "ટેબલનું નામ બદલો" અથવા "સ્ટ્રક્ચર બદલો" કહેવાથી તે ડ્રોપ અને ફરી બની શકે છે. વાસ્તવિક ડેટા હોય ત્યારે કહો: "હાલની રો માઇગ્રેટ કરો, કંઈ ડિલીટ ન કરો".
- ડેટાબેઝમાં ફાઇલો સંગ્રહવી. ઈમેજ અને PDF ફાઇલ સ્ટોરેજમાં જોઈએ, ટેબલમાં ફક્ત તેનો URL અથવા કી. જુઓ ફાઇલ અપલોડ કેવી રીતે ઉમેરવા.
- બેકઅપ નહીં. ગ્રાહકો આવે તે પહેલાં જાણો કે તમારું પ્લેટફોર્મ ડેટાનો બેકઅપ કેવી રીતે લે છે અને તેને કેવી રીતે રિસ્ટોર કરવો.
ચેકલિસ્ટ
- દરેક પ્રકારની વસ્તુનું પોતાનું ટેબલ હોય, ID અને બનાવ્યાના સમય સાથે
- જરૂરી ફીલ્ડ અને પ્રકારો ડેટાબેઝ દ્વારા લાગુ થાય
- કનેક્શન સ્ટ્રિંગ ફક્ત સર્વર-સાઇડ સિક્રેટમાં હોય
- બધી વાંચણી અને લખાણ સર્વર રૂટ દ્વારા થાય
- દરેક વપરાશકર્તા ફક્ત પોતાની રો વાંચી અને બદલી શકે
- ડેટા રિલોડ પછી ટકે અને બીજા બ્રાઉઝરમાં દેખાય
- સ્કીમા ફેરફારો માઇગ્રેશન વાપરે અને હાલની રો સાચવે
- બેકઅપ અને રિસ્ટોર કેવી રીતે કામ કરે તે ખબર હોય
- પબ્લિશ કર્યા પછી લાઈવ એપ ચકાસાયેલી હોય
Mythex માં ડેટાબેઝ ઉમેરવો
Mythex પર દરેક પ્રોજેક્ટને પોતાનો સમર્પિત Postgres ડેટાબેઝ મળી શકે છે, Free અને Pro બંનેમાં. સામાન્ય રીતે તમારે અલગ "attach" બટન દબાવવાની જરૂર નથી: ચેટમાં માગો ("વેઇટલિસ્ટ ઈમેલ ડેટાબેઝમાં સેવ કરો") અથવા /database ટાઇપ કરો, અને કનેક્શન વિગતો વર્કસ્પેસ અને તમારી પબ્લિશ થયેલી એપમાં ઇન્જેક્ટ થાય છે. પ્રોજેક્ટ સેટિંગ્સમાં બતાવે છે કે ડેટાબેઝ સક્રિય છે કે નહીં.
ડેટાબેઝ 5 મિનિટ નિષ્ક્રિય રહે તો સૂઈ જાય છે, અને આગલી રિક્વેસ્ટ પર જાગે છે. પબ્લિશ થયેલા વપરાશ માટે તે સમય માટે જ ચાર્જ થાય છે જ્યારે તે ખરેખર જાગ્રત હતો, અને બિલ્ડિંગ માટે વપરાતા એ જ ક્રેડિટ બેલેન્સમાંથી. જો તમે પહેલેથી પબ્લિશ કર્યા પછી ડેટાબેઝ ઉમેરો, તો લાઈવ એપ તેને ઉપાડે તે માટે ફરી પબ્લિશ કરો.
વધુ માટે docs માં Database અને Build a CRUD app રેસીપી જુઓ. પ્રતિ-વપરાશકર્તા ડેટાની લોગિન બાજુ માટે, તમારી એપમાં લોગિન કેવી રીતે ઉમેરવું વાંચો.
પ્રશ્નો
મારી એપને ડેટાબેઝની જરૂર છે?
જેવી તમારી એપને મુલાકાતો વચ્ચે કંઈક યાદ રાખવાનું હોય અથવા વપરાશકર્તાઓ વચ્ચે ડેટા શેર કરવાનો હોય — સાઇન-અપ, ઓર્ડર, બુકિંગ, પોસ્ટ કે સેટિંગ્સ — ત્યારે તમને તેની જરૂર પડે છે. બધાને એક જ કન્ટેન્ટ બતાવતી સ્ટેટિક વેબસાઇટને તેની જરૂર નથી.
નાની વેબ એપ માટે કયો ડેટાબેઝ વાપરવો?
મોટાભાગની નાની વેબ એપ માટે Postgres જેવો રિલેશનલ ડેટાબેઝ સલામત ડિફોલ્ટ છે. તે વપરાશકર્તાઓ, ઓર્ડર, સંબંધો અને રિપોર્ટિંગ સારી રીતે સંભાળે છે, વ્યાપકપણે સપોર્ટેડ છે, અને નાના સ્કેલ પર તમે તેનાથી ભાગ્યે જ આગળ નીકળો છો.
ડેટાબેઝને બદલે બ્રાઉઝરમાં ડેટા સંગ્રહી શકાય?
localStorage જેવું બ્રાઉઝર સ્ટોરેજ ફક્ત એક ડિવાઇસ અને એક બ્રાઉઝરમાં રહે છે, અને વપરાશકર્તા ગમે ત્યારે તેને સાફ કરી શકે છે. થીમ પસંદગી જેવી પસંદગીઓ માટે તે ઠીક છે, પણ તમારે કે બીજા વપરાશકર્તાઓએ પછી જોવાનું હોય તે માટે નહીં.
શું Mythex માં ડેટાબેઝ શામેલ છે?
હા. Mythex પ્રોજેક્ટને Free અને Pro બંનેમાં પોતાનો સમર્પિત Postgres ડેટાબેઝ મળી શકે છે. ચેટમાં માગો અથવા `/database` કમાન્ડ વાપરો, અને કનેક્શન વિગતો તમારા માટે ઇન્જેક્ટ થાય છે. વપરાશ એ જ ક્રેડિટ બેલેન્સમાંથી ચૂકવાય છે જેમાંથી બિલ્ડિંગ થાય છે.