Kuidas lisada oma rakendusse andmebaas (nii, et andmed hiljem ei kaoks)
Andmebaasi lisamiseks rakendusse vali hallatud relatsiooniline andmebaas (tavaliselt Postgres), hoia selle ühendusstringi serveripoolses saladuses, loo iga andmetüübi jaoks oma tabel ning lase oma taustaprogrammil, mitte brauseril, andmebaasi lugeda ja sinna kirjutada. Kui ehitad AI-rakenduste ehitajaga, saad tavaliselt lihtsalt öelda „salvesta see andmebaasi“ ja agent seadistab tabelid ja koodi; sinu ülesanne on andmed selgelt kirjeldada ja kontrollida, et need tõesti säilivad.
See juhend käsitleb seda, millal andmebaas on vaja, peamisi valikuid, kuidas andmeid kirjeldada ja vigu, mis põhjustavad andmete kadu või lekke.
Millal su rakendus vajab andmebaasi
Andmebaasi on vaja, kui rakendus peab pärast lehe sulgemist midagi meeles pidama või andmeid inimeste vahel jagama. Tüüpilised märgid:
- Külastajad saadavad midagi: vormi, registreerimise, broneeringu või tellimuse
- Kasutajatel on kontod oma salvestatud sisuga
- Administraator peab nägema või muutma seda, mida teised lõid
- Soovid aruandeid või loendureid ajas
Staatilise lehe puhul, kus kõik näevad sama sisu, näiteks portfoolio või lihtne maandumisleht, andmebaasi ei vaja. Kui sa ei tea täpselt, mis andmebaas on, loe kõigepealt mis on andmebaas.
Sinu valikud
| Valik | Mis see on | Sobib | Kompromissid |
|---|---|---|---|
| Ehitajaga kaasas olev andmebaas | Sinu projekti jaoks loodud ja ühendatud andmebaas | Enamik AI-ehitajaga tehtud rakendusi | Seotud selle platvormi hostinguga; eksport ja varukoopiad sõltuvad platvormist |
| Hallatud Postgres või MySQL | Hostitud relatsiooniline andmebaas, mille tellid eraldi | Rakendused, mida hostid ise või mida jagab mitu teenust | Võtmete, ühenduste piirangute ja pakettidega tegeled ise |
| Backend-as-a-service | Andmebaas koos autentimise, failisalvestuse ja API-dega ühes tootes | Esikülje-keskseid rakendusi, mis tahavad valmis sisselogimist | Rohkem platvormipõhiseid mõisteid õppida |
| Dokumendipõhine (NoSQL) andmebaas | Salvestab paindlikke JSON-taolisi dokumente | Väga ebaühtlased andmed | Seoseid ja aruandlust on raskem teha |
| Tabel andmebaasina | Google Sheets või sarnane tööriist API kaudu | Väikesed sisemised tööriistad, prototüübid | Aeglane, puuduvad korralikud piirangud, laguneb samaaegsel muutmisel |
Enamiku väikeste ja keskmise suurusega veebirakenduste jaoks on õige vaikevalik relatsiooniline andmebaas nagu Postgres. See on hea seoste haldamisel (klient on seotud mitme tellimusega), hoiab andmed järjepidevana ning lubab hiljem küsida küsimusi SQL-iga. Lihtsas keeles ülevaate saamiseks vaata mis on Postgres.
Kirjelda oma andmeid enne ehitamist
Kõige kasulikum, mida saad teha, on kirja panna asjad, mida su rakendus salvestab, ja nende seosed. Andmebaasi žargooni pole vaja. Broneerimisrakenduse näide:
- Kliendid: nimi, e-post, telefon
- Teenused: nimi, kestus, hind
- Broneeringud: milline klient, milline teenus, algusaeg, staatus (ootel, kinnitatud, tühistatud)
See on kolm tabelit. „Milline klient“ ja „milline teenus“ muutuvad nendevaheliseks seoseks (võõrvõtmeks). Selle õigesti tegemine varakult on palju olulisem kui ükski tehnoloogiline valik, sest juba olemasolevate ridadega andmete kuju muutmine on raskem kui lehe paigutuse muutmine.
Mõned praktilised reeglid:
- Üks tabel iga asjatüübi kohta. Ära pane tellimusi kliendi juurde tekstiveergu.
- Anna igale reale ID ja loomise aeg. Mõlemat vajad hiljem.
- Kasuta õigeid tüüpe. Kuupäevad kuupäevadena, raha täissentidena või kümnendtüübina, mitte tekstina.
- Märgi kohustuslikud väljad kohustuslikeks. Lase andmebaasil halbu andmeid tagasi lükata, mitte ainult vormil.
Näidispromptid
Alusta korraga ühe funktsiooniga, mitte kogu skeemiga:
Lisa sellele rakendusele andmebaas. Loo broneeringute tabel koos kliendi nime, e-posti, teenuse, algusaja ja staatusega (ootel, kinnitatud, tühistatud; vaikimisi ootel). Salvesta broneerimisvormi esitused sinna, näita edukuse teadet ja lisa administraatori leht, mis loetleb broneeringud uusimast vanimani.
Siis laienda seda:
Lisa teenuste tabel (nimi, kestus minutites, hind sentides). Asenda broneeringute vabateksti teenusevälja seos teenuste tabeliga ja migreeri olemasolevad broneeringud, kustutamata neid.
Ja tihenda seda:
Veendu, et kõik andmebaasi lugemised ja kirjutamised toimuvad serveris. Brauser ei tohi kunagi saada andmebaasi ühendusstringi. Valideeri e-post ja algusaeg serveris enne lisamist.
Samm-sammult
- Loetle oma andmed ülalkirjeldatud viisil: asjad, väljad ja nendevahelised seosed.
- Loo andmebaas. AI-ehitajas küsi seda vestluses. Mujal loo hallatud Postgres-eksemplar ja kopeeri selle ühendusstring.
- Salvesta ühendusstring saladusena (serveri keskkonnamuutujana), mitte kunagi koodi sisse. Vaata keskkonnamuutujad ja saladused.
- Loo tabelid. Kasuta migratsioone, versioonitud skripte, mis muudavad skeemi, nii et muudatused on korratavad ja tagasipööratavad.
- Ehita serveriteed, mis loovad, loevad, uuendavad ja kustutavad ridu (CRUD). Brauser kutsub neid teid; see ei räägi andmebaasiga otse.
- Ühenda kasutajaliides nende teedega: vormid, mis salvestavad, loendid, mis laadivad, ja tühjad olekud, kui midagi pole.
- Testi püsivust. Saada midagi, laadi leht uuesti, ava see teises brauseris. Kui andmeid pole seal, ei salvestatud neid andmebaasi.
- Kontrolli ligipääsu. Logi sisse teise kasutajana ja veendu, et ei näe ega muuda esimese kasutaja andmeid.
- Avalda ja testi uuesti avalikul URL-il, sest avaldatud rakendus võib kasutada teistsugust ühendust kui su eelvaade.
Levinud vead
- Salvestamine brauserisse ja arvamine, et see on andmebaasis. localStorage näib toimivat, kuni keegi avab rakenduse teises seadmes. Testi alati teises brauseris.
- Ühendusstringi panemine esikoodi. Igaüks saab esikoodi lugeda. See annab neile kogu sinu andmebaasi.
- Ligipääsukontrollide puudumine. „Näita mu tellimusi“ peab filtreerima sisselogitud kasutaja järgi serveris, mitte kasutajaliideses. See on AI-ga ehitatud rakenduste kõige levinum turvaauk; meie turvakontrollnimekiri AI-ga ehitatud rakendustele käsitleb seda.
- Hävitavad skeemimuudatused. Palve „nimeta tabel ümber“ või „muuda struktuuri“ võib tabeli kustutada ja uuesti luua. Kui olemas on päris andmed, ütle: „migreeri olemasolevad read, ära kustuta midagi“.
- Failide salvestamine andmebaasi. Pildid ja PDF-id kuuluvad failisalvestusse; tabelisse läheb ainult nende URL või võti. Vaata kuidas lisada failide üleslaadimist.
- Varukoopiate puudumine. Enne kui sul on kliente, tea, kuidas su platvorm andmeid varundab ja kuidas need taastada.
Kontrollnimekiri
- Igal asjatüübil on oma tabel koos ID ja loomise ajaga
- Kohustuslikud väljad ja tüübid on andmebaasi poolt jõustatud
- Ühendusstring on ainult serveri saladustes
- Kõik lugemised ja kirjutamised käivad serveriteede kaudu
- Iga kasutaja saab lugeda ja muuta ainult oma ridu
- Andmed püsivad pärast lehe uuesti laadimist ja ilmuvad teises brauseris
- Skeemimuudatused kasutavad migratsioone ja säilitavad olemasolevad read
- Tead, kuidas varukoopiad ja taastamine toimivad
- Pärast avaldamist on elav rakendus testitud
Andmebaasi lisamine Mythexis
Mythexis saab iga projekt oma pühendatud Postgres-andmebaasi, nii tasuta kui ka Pro paketis. Tavaliselt ei pea klikkima eraldi nuppu „lisa“: küsi vestluses (näiteks „salvesta ootelistiga liitunud e-mailid andmebaasi“) või kirjuta /database, ning ühendusandmed lisatakse töökeskkonda ja sinu avaldatud rakendusse. Projekti seadetes näed, kas andmebaas on aktiivne.
Andmebaas läheb pärast 5 minutit tegevusetust unerežiimi ja ärkab järgmisel päringul. Avaldatud kasutuse eest tasutakse ajast, mil andmebaas tegelikult ärkvel oli, samast krediidisaldost, mida kasutad ehitamiseks. Kui lisad andmebaasi pärast avaldamist, avalda uuesti, et elav rakendus seda kasutama hakkaks.
Vaata dokumentatsioonist andmebaas ja retsept CRUD-rakenduse ehitamine. Kasutajapõhiste andmete sisselogimise poolt loe kuidas lisada oma rakendusse sisselogimine.
Küsimused
Kas mu rakendus vajab andmebaasi?
Vajad seda kohe, kui rakendus peab midagi pärast külastust meeles pidama või andmeid kasutajate vahel jagama: registreerimised, tellimused, broneeringud, postitused või seaded. Staatiline veebileht, mis näitab kõigile sama sisu, andmebaasi ei vaja.
Millist andmebaasi peaksin väikese veebirakenduse jaoks kasutama?
Enamiku väikeste veebirakenduste jaoks on turvaline vaikevalik relatsiooniline andmebaas, näiteks Postgres. See toimib hästi kasutajate, tellimuste, seoste ja aruandlusega, on laialdaselt toetatud ning väikeses mahus seda harva ületad.
Kas saan andmeid andmebaasi asemel brauserisse salvestada?
Brauseri salvestusruum, näiteks localStorage, elab ainult ühes seadmes ja ühes brauseris ning kasutaja võib selle igal ajal kustutada. Eelistuste, näiteks teema valiku, jaoks sobib see, kuid mitte millegi jaoks, mida sina või teised kasutajad hiljem näha vajate.
Kas Mythex sisaldab andmebaasi?
Jah. Mythexi projektil võib olla oma pühendatud Postgres-andmebaas nii tasuta kui ka Pro paketis. Küsid selle vestluses või kasutad käsku /database ning ühendusandmed lisatakse sinu eest. Kasutus tasutakse samast krediidisaldost, mida kasutatakse ka ehitamiseks.