Vodiči

Kako dodati bazu podataka vašoj aplikaciji (bez gubitka podataka kasnije)

Da biste dodali bazu podataka aplikaciji, izaberite upravljanu relacionu bazu (Postgres je uobičajen podrazumevani izbor), čuvajte njen connection string u tajnoj vrednosti na serveru, napravite jednu tabelu za svaku vrstu stvari koju aplikacija čuva i neka vaš backend, a ne pregledač, čita i piše u nju. Ako pravite aplikaciju uz AI alat za izradu aplikacija, obično je dovoljno da kažete "sačuvaj ovo u bazu podataka" i agent će postaviti tabele i kod. Vaš posao je da jasno opišete podatke i proverite da se zaista čuvaju.

Ovaj vodič pokriva kada vam treba baza podataka, glavne opcije, kako da opišete podatke i greške koje dovode do izgubljenih ili procurelih podataka.

Kada aplikaciji treba baza podataka

Baza podataka vam treba kada aplikacija mora da zapamti nešto nakon što se stranica zatvori ili da podeli podatke između ljudi. Tipični znaci:

  • Posetioci nešto šalju: formular, prijavu, rezervaciju ili porudžbinu
  • Korisnici imaju naloge sa sopstvenim sačuvanim sadržajem
  • Administrator treba da vidi ili izmeni ono što su drugi napravili
  • Želite izveštaje ili brojače kroz vreme

Ne treba vam za statički sajt na kome svi vide isti sadržaj, poput portfolija ili jednostavne landing stranice. Ako ne znate šta baza podataka zapravo jeste, prvo pročitajte šta je baza podataka.

Vaše opcije

OpcijaŠta jeDobro zaKompromisi
Ugrađena baza iz vašeg alata za izradu aplikacijaBaza koja je napravljena i povezana za vaš projekatVećinu aplikacija pravljenih uz AI alatVezana za hosting te platforme; izvoz i rezervne kopije zavise od platforme
Upravljani Postgres ili MySQLHostovana relaciona baza koju sami zakupljujeteAplikacije koje sami hostujete ili koje deli više servisaSami upravljate ključevima, ograničenjima konekcija i planovima
Backend kao servisBaza plus autentikacija, skladište i API u jednom proizvoduAplikacije sa više frontenda koje žele gotovu prijavuViše pojmova specifičnih za dobavljača za učenje
Dokument (NoSQL) bazaČuva fleksibilne dokumente nalik JSON-uVeoma nepravilni podaciVeze i izveštavanje su teži
Tabela kao bazaGoogle Sheets ili slično preko API-jaMali interni alati, prototipoviSporo, nema prave ograničenja, puca kod istovremenih izmena

Za većinu malih i srednjih veb aplikacija, relaciona baza poput Postgresa je pravi podrazumevani izbor. Dobra je za veze (jedan kupac ima više porudžbina), održava podatke konzistentnim i omogućava kasnije odgovore na pitanja pomoću SQL-a. Za pregled Postgresa običnim jezikom pogledajte šta je Postgres.

Opišite podatke pre izrade

Najkorisnija stvar koju možete da uradite jeste da zapišete stvari koje aplikacija čuva i kako su povezane. Ne treba vam žargon iz baza podataka. Za aplikaciju za rezervacije:

  • Kupci: ime, email, telefon
  • Usluge: naziv, trajanje, cena
  • Rezervacije: koji kupac, koja usluga, vreme početka, status (na čekanju, potvrđena, otkazana)

To su tri tabele. "Koji kupac" i "koja usluga" postaju veze (strani ključevi) između njih. Ispravno postavljanje na početku važnije je od bilo kog izbora tehnologije, jer je promena oblika podataka koji već imaju stvarne redove teža od promene izgleda stranice.

Nekoliko praktičnih pravila:

  • Jedna tabela za svaku vrstu stvari. Nemojte trpati porudžbine u tekstualnu kolonu kod kupca.
  • Svaki red neka ima ID i vreme kreiranja. Oboje ćete poželeti kasnije.
  • Koristite ispravne tipove. Datumi kao datumi, novac kao celi centi ili decimalni tip, a ne kao tekst.
  • Označite obavezna polja kao obavezna. Neka baza odbija loše podatke, a ne samo formular.

Primeri promptova

Počnite sa jednom funkcijom odjednom, a ne sa celom šemom:

Dodaj bazu podataka ovoj aplikaciji. Napravi tabelu bookings sa imenom kupca, emailom, uslugom, vremenom početka i statusom (pending, confirmed, cancelled; podrazumevano pending). Sačuvaj podnete podatke iz formulara za rezervaciju, prikaži poruku o uspehu i dodaj admin stranicu koja prikazuje rezervacije od najnovije ka najstarijoj.

Zatim je proširite:

Dodaj tabelu services (naziv, trajanje u minutima, cena u centima). Zameni slobodno tekstualno polje za uslugu u rezervacijama vezom ka tabeli services i prenesi postojeće rezervacije bez brisanja.

I zatim pooštrite:

Proveri da se sva čitanja i pisanja u bazu obavljaju na serveru. Pregledač nikada ne sme da dobije connection string za bazu. Pre upisa na serveru proveri email i vreme početka.

Korak po korak

  1. Popišite podatke kao što je gore opisano: stvari, polja, veze među njima.
  2. Napravite bazu. U AI alatu za izradu aplikacija zatražite je u chatu. Drugde napravite upravljani Postgres i kopirajte njegov connection string.
  3. Sačuvajte connection string kao tajnu vrednost (promenljivu okruženja na serveru), nikad u kodu. Pogledajte promenljive okruženja i tajne vrednosti.
  4. Napravite tabele. Koristite migracije, verzionisane skripte koje menjaju šemu, da promene budu ponovljive i reverzibilne.
  5. Napravite serverske rute koje kreiraju, čitaju, menjaju i brišu redove (CRUD). Pregledač poziva te rute; nikad ne razgovara sa bazom direktno.
  6. Povežite korisnički interfejs sa tim rutama: formulari koji čuvaju, liste koje se učitavaju, prazna stanja kada nema ničeg.
  7. Testirajte trajnost. Pošaljite nešto, osvežite stranicu, otvorite je u drugom pregledaču. Ako podataka nema, nisu sačuvani u bazi.
  8. Proverite pristup. Prijavite se kao drugi korisnik i potvrdite da ne možete da vidite ili menjate podatke prvog korisnika.
  9. Objavite, pa ponovo testirajte na živom URL-u, jer objavljena aplikacija može koristiti drugačiju konekciju nego pregled.

Česte greške

  • Čuvanje u pregledaču i pretpostavka da je sačuvano. localStorage deluje kao da radi dok neko ne otvori aplikaciju na drugom uređaju. Uvek testirajte u drugom pregledaču.
  • Connection string u frontend kodu. Svako može da pročita frontend kod. To mu daje ceo vaš bazu.
  • Nema provere pristupa. "Prikaži moje porudžbine" mora da filtrira po prijavljenom korisniku na serveru, a ne u korisničkom interfejsu. Ovo je najčešća bezbednosna rupa u aplikacijama pravljenim uz AI; naša bezbednosna lista za aplikacije pravljene uz AI to pokriva.
  • Destruktivne promene šeme. Zahtev da se "preimenuje tabela" ili "promeni struktura" može da obriše i ponovo napravi tabelu. Kada postoje pravi podaci, recite "prenesi postojeće redove, ništa ne briši".
  • Čuvanje fajlova u bazi. Slike i PDF-ovi pripadaju skladištu fajlova, a u tabeli treba da stoji samo njihov URL ili ključ. Pogledajte kako dodati otpremanje fajlova.
  • Nema rezervnih kopija. Pre nego što imate kupce, znajte kako platforma pravi rezervne kopije i kako da ih vratite.

Lista za proveru

  • Svaka vrsta stvari ima sopstvenu tabelu sa ID-om i vremenom kreiranja
  • Obavezna polja i tipovi su provereni u bazi
  • Connection string postoji samo u tajnim vrednostima na serveru
  • Sva čitanja i pisanja idu kroz serverske rute
  • Svaki korisnik može da čita i menja samo svoje redove
  • Podaci opstaju nakon osvežavanja i vide se u drugom pregledaču
  • Promene šeme koriste migracije i čuvaju postojeće redove
  • Znate kako rade rezervne kopije i vraćanje
  • Živa aplikacija je testirana nakon objavljivanja

Dodavanje baze podataka u Mythexu

U Mythexu svaki projekat može da dobije svoju namensku Postgres bazu, i u Free i u Pro planu. Obično ne morate da kliknete zaseban dugme "attach": zatražite u chatu ("sačuvaj emailove sa liste čekanja u bazu") ili ukucajte /database, a podaci za povezivanje se ubacuju u radni prostor i u vašu objavljenu aplikaciju. Podešavanja projekta pokazuju da li je baza aktivna.

Baza se uspava nakon 5 minuta neaktivnosti i probudi se pri sledećem zahtevu. Korišćenje objavljene aplikacije naplaćuje se za vreme kada je baza bila budna, sa istog stanja kredita koje koristite za izradu. Ako dodate bazu nakon što ste već objavili, objavite ponovo da bi živa aplikacija to pokupila.

Pogledajte Baza podataka i recept Napravi CRUD aplikaciju u dokumentaciji. Za prijavu, što je deo podataka po korisniku, pročitajte kako dodati prijavu aplikaciji.

Pitanja

Da li mi treba baza podataka za aplikaciju?

Treba vam čim aplikacija mora da zapamti nešto između poseta ili da deli podatke između korisnika: prijave, porudžbine, rezervacije, objave ili podešavanja. Statički sajt koji svima prikazuje isti sadržaj ne treba bazu.

Koju bazu podataka da koristim za manju veb aplikaciju?

Relaciona baza kao što je Postgres je pouzdan izbor za većinu manjih veb aplikacija. Dobro radi sa korisnicima, porudžbinama, međusobnim vezama i izveštajima, široko je podržana i u malom obimu retko će vam biti tesna.

Mogu li da čuvam podatke u pregledaču umesto u bazi?

Skladište pregledača, kao što je localStorage, živi samo na jednom uređaju, u jednom pregledaču, a korisnik ga može obrisati u bilo kom trenutku. Dobro je za podešavanja poput izbora teme, ali ne i za ono što vi ili drugi korisnici treba kasnije da vidite.

Da li Mythex uključuje bazu podataka?

Da. Mythex projekat može da dobije sopstvenu namensku Postgres bazu u planovima Free i Pro. Zatražite je u chatu ili koristite komandu /database, a podaci za povezivanje se ubacuju automatski. Korišćenje se plaća sa istog stanja kredita kao i izrada aplikacije.

Mythex · Pricing · Pravite bilo šta uz AI · Šabloni za sajtove i aplikacije · Mythex u poređenju · Rečnik pojmova za pravljenje aplikacija uz AI · Besplatni alati za pravljenje aplikacija uz 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 Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)