Tietokannan lisääminen sovellukseesi (ilman myöhempiä tietojen menetyksiä)
Tietokannan lisääminen sovellukseesi tarkoittaa, että valitset hallitun relaatiotietokannan (Postgres on yleinen oletus), säilytät sen yhteysmerkkijonon palvelinpuolen salaisuutena, luot yhden taulun jokaista tallennettavaa asiatyyppiä kohti ja annat backendin — ei selaimen — lukea siitä ja kirjoittaa siihen. Jos rakennat sovellusta tekoälyavusteisella sovelluskehittäjällä, voit yleensä sanoa ”tallenna tämä tietokantaan”, ja agentti luo taulut ja koodin. Sinun tehtäväsi on kuvata tiedot selkeästi ja tarkistaa, että ne todella säilyvät.
Tämä opas kertoo, milloin tarvitset tietokannan, pääasialliset vaihtoehdot, miten kuvaat tietosi ja mitkä virheet aiheuttavat tietojen katoamisen tai vuotamisen.
Milloin sovelluksesi tarvitsee tietokannan
Tietokantaa tarvitaan, kun sovelluksen pitää muistaa jotain sivun sulkemisen jälkeen tai jakaa tietoja ihmisten välillä. Tyypillisiä merkkejä:
- Kävijät lähettävät jotain: lomakkeen, rekisteröitymisen, varauksen tai tilauksen
- Käyttäjillä on tilit, joissa on omaa tallennettua sisältöä
- Ylläpitäjän pitää nähdä tai muokata muiden luomia asioita
- Haluat raportteja tai laskureita ajan yli
Tarvitset sitä et staattiseen sivustoon, jossa kaikki näkevät saman sisällön, kuten portfolioon tai yksinkertaiseen laskeutumissivuun. Jos et ole varma, mitä tietokanta oikeasti on, lue ensin mikä tietokanta on.
Vaihtoehtosi
| Vaihtoehto | Mitä se on | Hyvä käyttöön | Kompromissit |
|---|---|---|---|
| Sovelluskehittäjän sisäänrakennettu tietokanta | Projektille luotu ja yhdistetty tietokanta | Useimmat tekoälysovelluskehittäjällä rakennetut sovellukset | Sidottu alustan hostaukseen; vienti ja varmuuskopiot riippuvat alustasta |
| Hallittu Postgres tai MySQL | Hostattu relaatiotietokanta, jonka tilaat erikseen | Sovellukset, jotka isännöit itse tai joita useat palvelut jakavat | Hallitset avaimet, yhteysrajat ja paketit itse |
| Backend-as-a-service | Tietokanta sekä kirjautuminen, tallennus ja API:t yhdessä tuotteessa | Frontend-painotteiset sovellukset, jotka haluavat valmiin kirjautumisen | Enemmän tuotekohtaisia käsitteitä opittavana |
| Dokumenttitietokanta (NoSQL) | Tallentaa joustavia JSON-tyyppisiä dokumentteja | Hyvin epäsäännöllinen data | Suhteet ja raportointi ovat vaikeampia |
| Taulukkolaskenta tietokantana | Google Sheets tai vastaava API:n kautta | Pienet sisäiset työkalut, prototyypit | Hidas, ei kunnollisia rajoitteita, hajoaa samanaikaisissa muokkauksissa |
Useimmille pienille ja keskisuurille web-sovelluksille relaatiotietokanta kuten Postgres on oikea oletus. Se osaa suhteet (asiakkaalla on monta tilausta), pitää tiedot johdonmukaisina ja antaa vastata kysymyksiin myöhemmin SQL-kielellä. Selkeä yleiskatsaus on kohdassa mikä Postgres on.
Kuvaa tietosi ennen rakentamista
Tärkein asia, jonka voit tehdä, on kirjoittaa ylös ne asiat, joita sovelluksesi tallentaa, ja miten ne liittyvät toisiinsa. Tietokantatermejä ei tarvita. Varaussovelluksessa tämä voisi olla:
- Asiakkaat: nimi, sähköposti, puhelin
- Palvelut: nimi, kesto, hinta
- Varaukset: mikä asiakas, mikä palvelu, aloitusaika, tila (odottaa, vahvistettu, peruttu)
Siinä on kolme taulua. ”Mikä asiakas” ja ”mikä palvelu” muuttuvat linkeiksi (vierasavaimiksi) taulujen välillä. Tämän oikein saaminen alussa on paljon tärkeämpää kuin mikään teknologiavalinta, koska jo olemassa olevien rivien tietorakenteen muuttaminen on vaikeampaa kuin sivun ulkoasun muuttaminen.
Muutama peukalosääntö:
- Yksi taulu per asiatyyppi. Älä pakkaa tilauksia asiakkaan tekstisarakkeeseen.
- Anna jokaiselle rivelle tunnus ja luontiaika. Tarvitset molempia myöhemmin.
- Käytä oikeita tyyppejä. Päivämäärät päivämäärinä, rahasumma kokonaisina sentteinä tai desimaalilukuna, ei tekstinä.
- Merkitse pakolliset kentät pakollisiksi. Anna tietokannan hylätä virheellinen data, ei vain lomake.
Esimerkkikehotteita
Aloita yhdellä ominaisuudella kerrallaan sen sijaan, että syötät koko skeeman kerralla:
Lisää tietokanta tähän sovellukseen. Luo bookings-taulu, jossa on asiakkaan nimi, sähköposti, palvelu, aloitusaika ja tila (odottaa, vahvistettu, peruttu; oletus odottaa). Tallenna varauslomakkeen lähetykset siihen, näytä onnistumisviesti ja lisää ylläpitosivu, joka listaa varaukset uusimmasta vanhimpaan.
Sitten laajenna sitä:
Lisää services-taulu (nimi, kesto minuutteina, hinta sentteinä). Korvaa varauksten vapaatekstipalvelukenttä linkillä palveluihin ja siirrä olemassa olevat varaukset poistamatta niitä.
Ja tiukenna:
Varmista, että kaikki tietokannan luku- ja kirjoitusoperaatiot tapahtuvat palvelimella. Selaimen ei koskaan saa vastaanottaa tietokannan yhteysmerkkijonoa. Validoi sähköposti ja aloitusaika palvelimella ennen lisäystä.
Vaihe vaiheelta
- Listaa tietosi yllä kuvatulla tavalla: asiat, kentät ja niiden väliset linkit.
- Luo tietokanta. Tekoälysovelluskehittäjässä pyydä sitä chatissa. Muualla luo hallittu Postgres-instanssi ja kopioi sen yhteysmerkkijono.
- Tallenna yhteysmerkkijono salaisuutena (palvelimen ympäristömuuttujana), ei koskaan koodiin. Katso ympäristömuuttujat ja salaisuudet.
- Luo taulut. Käytä migraatioita eli versioituja skriptejä, jotka muuttavat skeemaa, jotta muutokset ovat toistettavia ja peruttavia.
- Rakenna palvelinreitit, jotka luovat, lukevat, päivittävät ja poistavat rivejä (CRUD). Selain kutsuu näitä reittejä eikä koskaan puhu suoraan tietokannalle.
- Yhdistä käyttöliittymä näihin reitteihin: lomakkeet, jotka tallentavat, listat, jotka latautuvat, ja tyhjät näkymät, kun dataa ei vielä ole.
- Testaa pysyvyys. Lähetä jotain, lataa sivu uudelleen, avaa se toisessa selaimessa. Jos dataa ei ole, sitä ei tallennettu tietokantaan.
- Tarkista käyttöoikeudet. Kirjaudu toisena käyttäjänä ja varmista, ettet näe tai muokkaa ensimmäisen käyttäjän tietoja.
- Julkaise ja testaa uudelleen julkaistulla osoitteella, koska julkaistu sovellus voi käyttää eri yhteyttä kuin esikatselu.
Yleisimmät virheet
- Tallentaminen selaimeen ja oletus, että tiedot on tallennettu. localStorage näyttää toimivan, kunnes joku avaa sovelluksen toisella laitteella. Testaa aina toisessa selaimessa.
- Yhteysmerkkijono frontend-koodissa. Kuka tahansa voi lukea frontend-koodin. Se antaa heille koko tietokannan.
- Ei käyttöoikeustarkistuksia. ”Näytä tilaukseni” pitää suodattaa kirjautuneen käyttäjän mukaan palvelimella, ei käyttöliittymässä. Tämä on tekoälyllä rakennettujen sovellusten yleisin tietoturva-aukko. Tietoturvatarkistuslistamme käsittelee sen.
- Tuhoavat skeemamuutokset. Pyyntö ”nimeä taulu uudelleen” tai ”muuta rakennetta” voi pudottaa ja luoda taulun uudelleen. Kun oikeaa dataa on olemassa, sano: ”siirrä olemassa olevat rivit, älä poista mitään”.
- Tiedostojen tallentaminen tietokantaan. Kuvat ja PDF-tiedostot kuuluvat tiedostotallennukseen, ja taulussa on vain niiden URL tai avain. Katso miten lisätä tiedostolähetyksiä.
- Ei varmuuskopioita. Tiedä, miten alustasi varmuuskopioi tiedot ja miten ne palautetaan, ennen kuin sinulla on asiakkaita.
Tarkistuslista
- Jokaisella asiatyypillä on oma taulu, jossa on tunnus ja luontiaika
- Pakolliset kentät ja tyypit ovat tietokannan valvomia
- Yhteysmerkkijono on vain palvelimen salaisuuksissa
- Kaikki luku- ja kirjoitusoperaatiot kulkevat palvelinreittien kautta
- Jokainen käyttäjä voi lukea ja muuttaa vain omia rivejään
- Tiedot säilyvät uudelleenlatauksen jälkeen ja näkyvät toisessa selaimessa
- Skeemamuutokset tehdään migraatioilla ja ne säilyttävät olemassa olevat rivit
- Tiedät, miten varmuuskopiot ja palautukset toimivat
- Julkaistua sovellusta on testattu julkaisun jälkeen
Tietokannan lisääminen Mythexissä
Mythexissä jokaiselle projektille voi saada oman dedikoidun Postgres-tietokannan sekä Free- että Pro-tasolla. Yleensä et klikkaa erillistä ”liitä”-painiketta: pyydä chatissa (”tallenna waitlist-sähköpostit tietokantaan”) tai kirjoita /database, ja yhteystiedot syötetään työtilaan ja julkaistuun sovellukseesi. Projektin asetukset näyttävät, onko tietokanta aktiivinen.
Tietokanta menee nukkumaan 5 minuutin käyttämättömyyden jälkeen ja herää seuraavasta pyynnöstä. Julkaistusta käytöstä veloitetaan aika, jona tietokanta oli oikeasti hereillä, samasta krediittisaldosta, jota käytät rakentamiseen. Jos lisäät tietokannan julkaisun jälkeen, julkaise uudelleen, jotta julkaistu sovellus ottaa sen käyttöön.
Katso Database ja Build a CRUD app -ohje dokumentaatiossa. Käyttäjäkohtaisen datan kirjautumispuolesta lue miten lisätä kirjautuminen sovellukseesi.
Kysymykset
Tarvitseeko sovellukseni tietokantaa?
Tarvitset sitä heti, kun sovelluksesi on muistettava jotain käyntien välillä tai jaettava tietoja käyttäjien kesken: rekisteröitymiset, tilaukset, varaukset, julkaisut tai asetukset. Staattinen sivusto, joka näyttää kaikille saman sisällön, ei tarvitse tietokantaa.
Mitä tietokantaa kannattaa käyttää pieneen web-sovellukseen?
Relaatiotietokanta, kuten Postgres, on turvallinen oletusvalinta useimmille pienille web-sovelluksille. Se hoitaa käyttäjät, tilaukset, suhteet ja raportoinnin hyvin, on laajasti tuettu, eikä pienessä mittakaavassa yleensä kasva ulos siitä.
Voinko tallentaa tiedot selaimeen tietokannan sijaan?
Selaimen tallennus, kuten localStorage, elää vain yhdellä laitteella ja yhdessä selaimessa, ja käyttäjä voi tyhjentää sen milloin tahansa. Se sopii asetuksiin, kuten teeman valintaan, mutta ei tietoihin, joita sinun tai muiden käyttäjien täytyy nähdä myöhemmin.
Sisältääkö Mythex tietokannan?
Kyllä. Mythex-projektille voi saada oman dedikoidun Postgres-tietokannan Free- ja Pro-tasoilla. Pyydät sitä chatissa tai käytät komentoa /database, ja yhteystiedot syötetään automaattisesti. Käyttö veloitetaan samasta krediittisaldosta kuin rakentaminen.