Ръководства

Как да добавите база данни към приложението си (без да загубите данни после)

За да добавите база данни към приложението си, изберете управлявана релационна база данни (Postgres е обичайният избор по подразбиране), пазете връзката към нея в тайна на сървъра, създайте по една таблица за всеки вид нещо, което приложението съхранява, и оставете бекенда — никога браузъра — да чете и пише в нея. Ако създавате с AI платформа, обикновено можете просто да кажете „запази това в база данни“ и агентът ще създаде таблиците и кода; вашата задача е ясно да опишете данните и да проверите, че наистина се запазват.

Това ръководство обяснява кога ви трябва база данни, основните варианти, как да опишете данните си и грешките, които водят до загубени или изтекли данни.

Кога приложението ви има нужда от база данни

Трябва ви база данни, когато приложението трябва да запомни нещо, след като страницата е затворена, или да сподели данни между хората. Типични признаци:

  • Посетители изпращат нещо: формуляр, регистрация, резервация, поръчка
  • Потребителите имат акаунти със собствено запазено съдържание
  • Администратор трябва да вижда или редактира това, което са създали другите
  • Искате отчети или броячи във времето

Не ви трябва за статичен сайт, където всички виждат едно и също съдържание, например портфолио или проста целева страница. Ако не сте сигурни какво точно е базата данни, първо прочетете какво е база данни.

Вашите варианти

ВариантКакво еПодходящ заКомпромиси
Вградена база данни от платформата за създаванеБаза данни, създадена и свързана за проекта виПовечето приложения, създадени с AI платформаСвързана е с хостинга на платформата; експортът и резервните копия зависят от нея
Управляван Postgres или MySQLХостната релационна база данни, за която се регистрирате отделноПриложения, които хоствате сами, или които споделят няколко услугиСами управлявате ключове, лимити на връзките и планове
Backend-as-a-serviceБаза данни плюс автентикация, файлово хранилище и API в един продуктПриложения с по-силен фронтенд, които искат готов входПовече специфични за доставчика понятия за учене
Документна (NoSQL) база данниСъхранява гъвкави документи, подобни на JSONМного нередовни данниВръзките и отчетите са по-трудни
Електронна таблица като база данниGoogle Sheets или подобно през APIМалки вътрешни инструменти, прототипиБавно, без истински ограничения, се чупи при едновременни редакции

За повечето малки и средни уеб приложения правилният избор по подразбиране е релационна база данни като Postgres. Тя е добра с връзки (клиент има много поръчки), пази данните последователни и позволява по-късно да отговаряте на въпроси със SQL. За обяснение на достъпен език вижте какво е Postgres.

Опишете данните си преди да създавате

Най-полезното, което можете да направите, е да запишете нещата, които приложението съхранява, и как са свързани. Не са нужни термини от базите данни. За приложение за резервации:

  • Клиенти: име, имейл, телефон
  • Услуги: име, продължителност, цена
  • Резервации: кой клиент, коя услуга, начален час, статус (чакаща, потвърдена, отказана)

Това са три таблици. „Кой клиент“ и „коя услуга“ стават връзки (външни ключове) между тях. Правилното подреждане от самото начало е много по-важно от избора на технология, защото промяната на формата на данни, които вече имат реални редове, е по-трудна от промяната на оформлението на страница.

Няколко правила за палец:

  • Една таблица за всеки вид нещо. Не натрупвайте поръчките в текстова колона към клиента.
  • Дайте на всеки ред ID и време на създаване. Ще ви трябват и двете по-късно.
  • Използвайте правилните типове. Дати като дати, пари като цели стотинки или десетично число, а не като текст.
  • Отбелязвайте задължителните полета като задължителни. Нека базата данни отхвърля лошите данни, а не само формуляра.

Примерни промптове

Започнете с една функция наведнъж, а не с цялата схема наведнъж:

Добави база данни към това приложение. Създай таблица bookings с име на клиент, имейл, услуга, начален час и статус (чакаща, потвърдена, отказана; по подразбиране чакаща). Запазвай изпращанията от формуляра за резервация в нея, покажи съобщение за успех и добави административна страница, която показва резервациите, като най-новите са първи.

После я разширете:

Добави таблица services (име, продължителност в минути, цена в стотинки). Замени свободното текстово поле за услуга в bookings с връзка към services и мигрирай съществуващите резервации, без да изтриваш нищо.

И я затегнете:

Увери се, че всички четения и записи в базата данни стават на сървъра. Браузърът никога не трябва да получава връзката към базата данни. Валидирай имейла и началния час на сървъра, преди да вмъкнеш записа.

Стъпка по стъпка

  1. Изброете данните си както по-горе: неща, полета, връзки между тях.
  2. Създайте базата данни. В AI платформа поискайте я в чата. Другаде създайте управляван Postgres и копирайте връзката.
  3. Запазете връзката като тайна (променлива на средата на сървъра), никога в кода. Вижте променливи на средата и тайни.
  4. Създайте таблиците. Използвайте миграции — версионирани скриптове, които променят схемата, така че промените да са повторяеми и обратими.
  5. Създайте серверни маршрути, които създават, четат, обновяват и изтриват редове (CRUD). Браузърът вика тези маршрути; никога не говори директно с базата данни.
  6. Свържете интерфейса с тези маршрути: формуляри, които запазват, списъци, които се зареждат, празни състояния, когато още няма нищо.
  7. Тествайте запазването. Изпратете нещо, презаредете страницата, отворете я в друг браузър. Ако данните ги няма, не са запазени в базата данни.
  8. Проверете достъпа. Влезте с втори потребител и се уверете, че не можете да виждате или редактирате данните на първия.
  9. Публикувайте, после тествайте отново на живото URL, защото публикуваното приложение може да използва различна връзка от преглеждането.

Чести грешки

  • Запазване в браузъра, което се смята за запазено на сървъра. localStorage изглежда работи, докато някой не отвори приложението на друго устройство. Винаги тествайте в втори браузър.
  • Връзката към базата данни във фронтенд кода. Всеки може да прочете фронтенд кода. Това му дава цялата ви база данни.
  • Липсващи проверки за достъп. „Покажи моите поръчки“ трябва да филтрира по влезлия потребител на сървъра, а не в интерфейса. Това е най-честата дупка в сигурността при приложения, създадени с AI; нашият контролен списък за сигурност я разглежда.
  • Деструктивни промени в схемата. Заявка да „преименувате таблицата“ или „промените структурата“ може да я изтрие и създаде отново. Когато има реални данни, пишете „мигрирай съществуващите редове, не изтривай нищо“.
  • Съхранение на файлове в базата данни. Снимките и PDF файловете принадлежат в файлово хранилище, а в таблицата се пази само техният URL или ключ. Вижте как да добавите качване на файлове.
  • Без резервни копия. Преди да имате клиенти, знайте как платформата ви прави резервни копия и как бихте възстановили данните.

Контролен списък

  • Всеки вид нещо има собствена таблица с ID и време на създаване
  • Задължителните полета и типовете се налагат от базата данни
  • Връзката към базата данни е само в тайни на сървъра
  • Всички четения и записи минават през серверни маршрути
  • Всеки потребител може да чете и променя само своите редове
  • Данните оцеляват презареждане и се виждат в друг браузър
  • Промените в схемата използват миграции и запазват съществуващите редове
  • Знаете как работят резервните копия и възстановяването
  • Живото приложение е тествано след публикуване

Добавяне на база данни в Mythex

В Mythex всеки проект може да получи собствена отделна Postgres база данни — както в Free, така и в Pro. Обикновено не натискате отделен бутон „свържи“: поискайте го в чата („запази имейлите от списъка с чакащи в база данни“) или напишете /database, и данните за връзка се въвеждат в работното пространство и в публикуваното ви приложение. В настройките на проекта се вижда дали базата данни е активна.

Базата данни заспива след 5 минути без активност и се събужда при следващата заявка. Използването при публикуваното приложение се таксува за времето, през което е била будна, от същия баланс с кредити, който използвате за създаване. Ако добавите база данни след като вече сте публикували, публикувайте отново, за да може живото приложение да я използва.

Вижте База данни и рецептата Създайте CRUD приложение в документацията. За частта с вход за данни по потребител прочетете как да добавите вход в приложението си.

Въпроси

Имам ли нужда от база данни за приложението си?

Да, веднага щом приложението трябва да запомня нещо между посещенията или да споделя данни между потребители: регистрации, поръчки, резервации, публикации или настройки. Статичен сайт, който показва едно и също съдържание на всички, не се нуждае от база данни.

Коя база данни да използвам за малко уеб приложение?

Релационна база данни като Postgres е сигурен избор по подразбиране за повечето малки уеб приложения. Работи добре с потребители, поръчки, връзки между данни и отчети, има широка поддръжка и при малък мащаб рядко ще я надраснете.

Мога ли да съхранявам данните в браузъра вместо в база данни?

Браузърното хранилище като localStorage живее само на едно устройство, в един браузър, и потребителят може да го изчисти по всяко време. Подходящо е за предпочитания, например избор на тема, но не и за нещо, което вие или други потребители трябва да виждате по-късно.

Включва ли Mythex база данни?

Да. Проект в Mythex може да получи собствена отделна Postgres база данни в Free и Pro. Поискате я в чата или използвате командата /database, а данните за връзка се въвеждат автоматично. Използването се плаща от същия баланс с кредити, както създаването.

Mythex · Pricing · Създай всичко с ИИ · Шаблони за уебсайтове и приложения · Mythex в сравнение · Речник на създаването на приложения с ИИ · Безплатни инструменти за създаване на приложения с ИИ · 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 Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)