Rokasgrāmatas

Kā pievienot datubāzi savai lietotnei (bez datu zaudēšanas vēlāk)

Lai pievienotu datubāzi savai lietotnei, izvēlies pārvaldītu relāciju datubāzi (parasti noklusējums ir Postgres), glabā tās savienojuma virkni servera pusē kā noslēpumu, izveido vienu tabulu katram datu veidam, ko lietotne glabā, un ļauj tavam serverim — nevis pārlūkprogrammai — lasīt un rakstīt datus. Ja lietotni veido ar AI lietotņu veidotāju, parasti pietiek pateikt „saglabā to datubāzē”, un aģents iestata tabulas un kodu; tavs uzdevums ir skaidri aprakstīt datus un pārbaudīt, ka tie tiešām saglabājas.

Šajā ceļvedī aplūkots, kad datubāze ir vajadzīga, galvenās iespējas, kā aprakstīt datus un kļūdas, kas izraisa zaudētus vai noplūdušus datus.

Kad lietotnei vajag datubāzi

Datubāze ir vajadzīga, kad lietotnei jāatceras kaut kas pēc lapas aizvēršanas vai jādala dati starp cilvēkiem. Tipiskas pazīmes:

  • Apmeklētāji kaut ko iesniedz: veidlapu, reģistrāciju, rezervāciju vai pasūtījumu
  • Lietotājiem ir konti ar saviem saglabātajiem saturiem
  • Administratoram jāredz vai jārediģē tas, ko izveidojuši citi
  • Vēlies pārskatus vai skaitītājus laika gaitā

Ja tā ir statiska vietne, kur visi redz vienu un to pašu saturu, piemēram, portfolio vai vienkārša nolaišanās lapa, datubāze nav vajadzīga. Ja nezini, kas tieši ir datubāze, vispirms izlasi kas ir datubāze.

Tavas iespējas

IespējaKas tas irDerKompromisi
Iebūvēta datubāze no lietotņu veidotājaDatubāze, kas izveidota un pieslēgta tavam projektamVairums lietotņu, kas veidotas ar AI veidotājuSaistīta ar šīs platformas hostingu; eksports un dublējumi ir atkarīgi no platformas
Pārvaldīts Postgres vai MySQLHostēta relāciju datubāze, ko reģistrē atsevišķiLietotnes, ko hostē pats, vai ko kopīgi izmanto vairāki servisiPats pārvaldi atslēgas, savienojumu limitus un plānus
Backend-as-a-serviceDatubāze, autentifikācija, krātuve un API vienā produktāFrontend orientētas lietotnes, kurām vajag gatavu pieteikšanosVairāk konkrētai platformai raksturīgu jēdzienu, ko apgūt
Dokumentu (NoSQL) datubāzeGlabā elastīgus JSON līdzīgus dokumentusĻoti nevienmērīgi datiSaiknes un pārskati ir grūtāki
Izklājlapa kā datubāzeGoogle Sheets vai līdzīgi caur APINelieli iekšējie rīki, prototipiLēni, nav reālu ierobežojumu, sabrūk, ja vienlaikus rediģē vairāki

Lielākajai daļai mazu un vidēja izmēra tīmekļa lietotņu pareizais noklusējums ir relāciju datubāze, piemēram, Postgres. Tā labi tiek galā ar saiknēm (klientam ir daudz pasūtījumu), uztur datus konsekventus un ļauj vēlāk uzdot jautājumus ar SQL. Pārskatu par Postgres vienkāršā valodā atradīsi šeit: kas ir Postgres.

Apraksti savus datus pirms būvēšanas

Vislietderīgākais, ko vari izdarīt, ir uzrakstīt, kādas lietas tava lietotne glabā un kā tās saistās. Datubāzes žargons nav vajadzīgs. Rezervāciju lietotnei tas varētu būt:

  • Klienti: vārds, e-pasts, tālrunis
  • Pakalpojumi: nosaukums, ilgums, cena
  • Rezervācijas: kurš klients, kurš pakalpojums, sākuma laiks, statuss (gaida, apstiprināta, atcelta)

Tas ir trīs tabulas. „Kurš klients” un „kurš pakalpojums” kļūst par saitēm (ārējām atslēgām) starp tabulām. Pareizi to izdarīt agrīni ir daudz svarīgāk nekā jebkura tehnoloģijas izvēle, jo datu struktūru, kurā jau ir reāli ieraksti, mainīt ir grūtāk nekā lapas izkārtojumu.

Daži praktiski noteikumi:

  • Viena tabula katram datu veidam. Nesaliec pasūtījumus teksta kolonnā klienta tabulā.
  • Katram ierakstam dod ID un izveides laiku. Abi noderēs vēlāk.
  • Izmanto pareizus tipus. Datumi kā datumi, nauda kā veseli centi vai decimālskaitlis, nevis teksts.
  • Atzīmē obligātos laukus kā obligātus. Ļauj datubāzei noraidīt nekorektus datus, nevis tikai veidlapai.

Piemēru uzvednes

Sāc ar vienu funkciju vienlaikus, nevis uzreiz ar visu shēmu:

Pievieno šai lietotnei datubāzi. Izveido bookings tabulu ar klienta vārdu, e-pastu, pakalpojumu, sākuma laiku un statusu (gaida, apstiprināta, atcelta; noklusējums — gaida). Saglabā rezervāciju veidlapas iesniegumus tajā, parādi veiksmīgas saglabāšanas ziņojumu un pievieno administratora lapu, kur rezervācijas redzamas no jaunākās uz vecāko.

Pēc tam paplašini:

Pievieno services tabulu (nosaukums, ilgums minūtēs, cena centos). Aizstāj bookings brīvā teksta pakalpojuma lauku ar saiti uz services un pārnes esošās rezervācijas, neko neizdzēšot.

Un nostiprini:

Pārliecinies, ka visas datubāzes lasīšanas un rakstīšanas darbības notiek serverī. Pārlūkprogramma nekad nedrīkst saņemt datubāzes savienojuma virkni. Pirms ievietošanas serverī pārbaudi e-pastu un sākuma laiku.

Soli pa solim

  1. Uzskaiti savus datus, kā aprakstīts iepriekš: lietas, lauki, saiknes starp tām.
  2. Izveido datubāzi. AI lietotņu veidotājā to pieprasi tērzēšanā. Citur izveido pārvaldītu Postgres instanci un nokopē tās savienojuma virkni.
  3. Saglabā savienojuma virkni kā noslēpumu (servera vides mainīgo), nekad kodā. Skat. vides mainīgie un noslēpumi.
  4. Izveido tabulas. Izmanto migrācijas — versētus skriptus, kas maina shēmu, lai izmaiņas būtu atkārtojamas un atgriežamas.
  5. Izveido servera maršrutus, kas veido, lasa, atjauno un dzēš ierakstus (CRUD). Pārlūkprogramma izsauc šos maršrutus; tā nekad nesazinās ar datubāzi tieši.
  6. Pievieno lietotāja saskarni pie šiem maršrutiem: veidlapas, kas saglabā, sarakstus, kas ielādējas, un tukšus stāvokļus, kad vēl nav nekā.
  7. Pārbaudi noturību. Iesniedz kaut ko, pārlādē lapu, atver citā pārlūkprogrammā. Ja datu nav, tie netika saglabāti datubāzē.
  8. Pārbaudi piekļuvi. Piesakies kā otrs lietotājs un pārliecinies, ka nevari redzēt vai rediģēt pirmā lietotāja datus.
  9. Publicē un pārbaudi vēlreiz dzīvajā URL, jo publicētā lietotne var izmantot citu savienojumu nekā tava priekšskatījuma versija.

Biežākās kļūdas

  • Saglabāšana pārlūkprogrammā un domāšana, ka tas ir saglabāts. localStorage šķiet, ka darbojas, līdz kāds atver lietotni citā ierīcē. Vienmēr pārbaudi otrā pārlūkprogrammā.
  • Savienojuma virknes ievietošana frontend kodā. Ikviens var izlasīt frontend kodu. Tas dod pilnu piekļuvi tavai datubāzei.
  • Nav piekļuves pārbaužu. „Rādi manus pasūtījumus” jāfiltrē pēc pieteikušās personas serverī, nevis lietotāja saskarnē. Tā ir biežākā drošības nepilnība AI veidotās lietotnēs; mūsu drošības pārbaudes saraksts to aplūko.
  • Destruktīvas shēmas izmaiņas. Lūgums „pārdēvē tabulu” vai „maini struktūru” var to nomest un izveidot no jauna. Ja ir reāli dati, saki „pārnes esošās rindas, neko neizdzēšot”.
  • Failu glabāšana datubāzē. Attēli un PDF pieder failu krātuvei, bet tabulā glabā tikai to URL vai atslēgu. Skat. kā pievienot failu augšupielādi.
  • Nav dublējumu. Pirms tev ir klienti, zini, kā tava platforma dublē datus un kā tos atjaunot.

Kontrolsaraksts

  • Katram datu veidam ir sava tabula ar ID un izveides laiku
  • Obligātos laukus un tipus nodrošina datubāze
  • Savienojuma virkne atrodas tikai servera pusē noslēpumos
  • Visas lasīšanas un rakstīšanas darbības notiek caur servera maršrutiem
  • Katrs lietotājs var lasīt un mainīt tikai savus ierakstus
  • Dati pēc pārlādēšanas paliek un parādās citā pārlūkprogrammā
  • Shēmas izmaiņām izmanto migrācijas un saglabā esošās rindas
  • Zini, kā darbojas dublēšana un atjaunošana
  • Dzīvā lietotne ir pārbaudīta pēc publicēšanas

Datubāzes pievienošana Mythex

Mythex katram projektam var piešķirt savu īpašu Postgres datubāzi, gan Free, gan Pro plānā. Parasti nav jānospiež atsevišķa poga „pievienot”: pieprasi tērzēšanā („saglabā pieteikumus uz sarakstu datubāzē”) vai ieraksti /database, un savienojuma dati tiek ievadīti darba vidē un tavā publicētajā lietotnē. Projekta iestatījumos redzams, vai datubāze ir aktīva.

Datubāze pēc 5 neaktīvām minūtēm iemiga un pamostas nākamajā pieprasījumā. Publicētais izmantojums tiek maksāts par laiku, kad tā faktiski bija nomodā, no tā paša kredītu atlikuma, ko izmanto būvēšanai. Ja datubāzi pievienoji pēc publicēšanas, publicē vēlreiz, lai dzīvā lietotne to paņemtu.

Skat. Datubāze un CRUD lietotnes izveide receptu dokumentācijā. Lietotāju datu pieteikšanās daļai lasi kā pievienot pieteikšanos lietotnei.

Jautājumi

Vai manai lietotnei ir vajadzīga datubāze?

Tā ir vajadzīga, tiklīdz lietotnei jāatceras kaut kas starp apmeklējumiem vai jādalās ar datiem starp lietotājiem: reģistrācijas, pasūtījumi, rezervācijas, ieraksti vai iestatījumi. Statiska vietne, kas visiem rāda vienu un to pašu saturu, datubāzi nevajag.

Kuru datubāzi izmantot mazai tīmekļa lietotnei?

Relāciju datubāze, piemēram, Postgres, ir drošs noklusējums lielākajai daļai mazu tīmekļa lietotņu. Tā labi tiek galā ar lietotājiem, pasūtījumiem, saiknēm un pārskatiem, ir plaši atbalstīta, un mazā mērogā to reti pārsniedz.

Vai datus var glabāt pārlūkprogrammā, nevis datubāzē?

Pārlūkprogrammas krātuve, piemēram, localStorage, dzīvo tikai vienā ierīcē, vienā pārlūkprogrammā, un lietotājs to jebkurā brīdī var notīrīt. Tā ir piemērota tādiem iestatījumiem kā motīva izvēle, bet ne tam, ko tu vai citi lietotāji vēlāk vēlēsieties redzēt.

Vai Mythex ietver datubāzi?

Jā. Mythex projektam Free un Pro plānos var būt sava īpaša Postgres datubāze. To pieprasi tērzēšanā vai izmanto komandu /database, un savienojuma dati tiek ievadīti automātiski. Izmantojums tiek maksāts no tā paša kredītu atlikuma, ko izmanto lietotnes veidošanai.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar 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ų Македонски മലയാളം Монгол मराठी 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 简体中文 繁體中文(香港) 繁體中文(台灣)