Как да добавите база данни към приложението си (без да загубите данни после)
За да добавите база данни към приложението си, изберете управлявана релационна база данни (Postgres е обичайният избор по подразбиране), пазете връзката към нея в тайна на сървъра, създайте по една таблица за всеки вид нещо, което приложението съхранява, и оставете бекенда — никога браузъра — да чете и пише в нея. Ако създавате с AI платформа, обикновено можете просто да кажете „запази това в база данни“ и агентът ще създаде таблиците и кода; вашата задача е ясно да опишете данните и да проверите, че наистина се запазват.
Това ръководство обяснява кога ви трябва база данни, основните варианти, как да опишете данните си и грешките, които водят до загубени или изтекли данни.
Кога приложението ви има нужда от база данни
Трябва ви база данни, когато приложението трябва да запомни нещо, след като страницата е затворена, или да сподели данни между хората. Типични признаци:
- Посетители изпращат нещо: формуляр, регистрация, резервация, поръчка
- Потребителите имат акаунти със собствено запазено съдържание
- Администратор трябва да вижда или редактира това, което са създали другите
- Искате отчети или броячи във времето
Не ви трябва за статичен сайт, където всички виждат едно и също съдържание, например портфолио или проста целева страница. Ако не сте сигурни какво точно е базата данни, първо прочетете какво е база данни.
Вашите варианти
| Вариант | Какво е | Подходящ за | Компромиси |
|---|---|---|---|
| Вградена база данни от платформата за създаване | База данни, създадена и свързана за проекта ви | Повечето приложения, създадени с AI платформа | Свързана е с хостинга на платформата; експортът и резервните копия зависят от нея |
| Управляван Postgres или MySQL | Хостната релационна база данни, за която се регистрирате отделно | Приложения, които хоствате сами, или които споделят няколко услуги | Сами управлявате ключове, лимити на връзките и планове |
| Backend-as-a-service | База данни плюс автентикация, файлово хранилище и API в един продукт | Приложения с по-силен фронтенд, които искат готов вход | Повече специфични за доставчика понятия за учене |
| Документна (NoSQL) база данни | Съхранява гъвкави документи, подобни на JSON | Много нередовни данни | Връзките и отчетите са по-трудни |
| Електронна таблица като база данни | Google Sheets или подобно през API | Малки вътрешни инструменти, прототипи | Бавно, без истински ограничения, се чупи при едновременни редакции |
За повечето малки и средни уеб приложения правилният избор по подразбиране е релационна база данни като Postgres. Тя е добра с връзки (клиент има много поръчки), пази данните последователни и позволява по-късно да отговаряте на въпроси със SQL. За обяснение на достъпен език вижте какво е Postgres.
Опишете данните си преди да създавате
Най-полезното, което можете да направите, е да запишете нещата, които приложението съхранява, и как са свързани. Не са нужни термини от базите данни. За приложение за резервации:
- Клиенти: име, имейл, телефон
- Услуги: име, продължителност, цена
- Резервации: кой клиент, коя услуга, начален час, статус (чакаща, потвърдена, отказана)
Това са три таблици. „Кой клиент“ и „коя услуга“ стават връзки (външни ключове) между тях. Правилното подреждане от самото начало е много по-важно от избора на технология, защото промяната на формата на данни, които вече имат реални редове, е по-трудна от промяната на оформлението на страница.
Няколко правила за палец:
- Една таблица за всеки вид нещо. Не натрупвайте поръчките в текстова колона към клиента.
- Дайте на всеки ред ID и време на създаване. Ще ви трябват и двете по-късно.
- Използвайте правилните типове. Дати като дати, пари като цели стотинки или десетично число, а не като текст.
- Отбелязвайте задължителните полета като задължителни. Нека базата данни отхвърля лошите данни, а не само формуляра.
Примерни промптове
Започнете с една функция наведнъж, а не с цялата схема наведнъж:
Добави база данни към това приложение. Създай таблица bookings с име на клиент, имейл, услуга, начален час и статус (чакаща, потвърдена, отказана; по подразбиране чакаща). Запазвай изпращанията от формуляра за резервация в нея, покажи съобщение за успех и добави административна страница, която показва резервациите, като най-новите са първи.
После я разширете:
Добави таблица services (име, продължителност в минути, цена в стотинки). Замени свободното текстово поле за услуга в bookings с връзка към services и мигрирай съществуващите резервации, без да изтриваш нищо.
И я затегнете:
Увери се, че всички четения и записи в базата данни стават на сървъра. Браузърът никога не трябва да получава връзката към базата данни. Валидирай имейла и началния час на сървъра, преди да вмъкнеш записа.
Стъпка по стъпка
- Изброете данните си както по-горе: неща, полета, връзки между тях.
- Създайте базата данни. В AI платформа поискайте я в чата. Другаде създайте управляван Postgres и копирайте връзката.
- Запазете връзката като тайна (променлива на средата на сървъра), никога в кода. Вижте променливи на средата и тайни.
- Създайте таблиците. Използвайте миграции — версионирани скриптове, които променят схемата, така че промените да са повторяеми и обратими.
- Създайте серверни маршрути, които създават, четат, обновяват и изтриват редове (CRUD). Браузърът вика тези маршрути; никога не говори директно с базата данни.
- Свържете интерфейса с тези маршрути: формуляри, които запазват, списъци, които се зареждат, празни състояния, когато още няма нищо.
- Тествайте запазването. Изпратете нещо, презаредете страницата, отворете я в друг браузър. Ако данните ги няма, не са запазени в базата данни.
- Проверете достъпа. Влезте с втори потребител и се уверете, че не можете да виждате или редактирате данните на първия.
- Публикувайте, после тествайте отново на живото URL, защото публикуваното приложение може да използва различна връзка от преглеждането.
Чести грешки
- Запазване в браузъра, което се смята за запазено на сървъра. localStorage изглежда работи, докато някой не отвори приложението на друго устройство. Винаги тествайте в втори браузър.
- Връзката към базата данни във фронтенд кода. Всеки може да прочете фронтенд кода. Това му дава цялата ви база данни.
- Липсващи проверки за достъп. „Покажи моите поръчки“ трябва да филтрира по влезлия потребител на сървъра, а не в интерфейса. Това е най-честата дупка в сигурността при приложения, създадени с AI; нашият контролен списък за сигурност я разглежда.
- Деструктивни промени в схемата. Заявка да „преименувате таблицата“ или „промените структурата“ може да я изтрие и създаде отново. Когато има реални данни, пишете „мигрирай съществуващите редове, не изтривай нищо“.
- Съхранение на файлове в базата данни. Снимките и PDF файловете принадлежат в файлово хранилище, а в таблицата се пази само техният URL или ключ. Вижте как да добавите качване на файлове.
- Без резервни копия. Преди да имате клиенти, знайте как платформата ви прави резервни копия и как бихте възстановили данните.
Контролен списък
- Всеки вид нещо има собствена таблица с ID и време на създаване
- Задължителните полета и типовете се налагат от базата данни
- Връзката към базата данни е само в тайни на сървъра
- Всички четения и записи минават през серверни маршрути
- Всеки потребител може да чете и променя само своите редове
- Данните оцеляват презареждане и се виждат в друг браузър
- Промените в схемата използват миграции и запазват съществуващите редове
- Знаете как работят резервните копия и възстановяването
- Живото приложение е тествано след публикуване
Добавяне на база данни в Mythex
В Mythex всеки проект може да получи собствена отделна Postgres база данни — както в Free, така и в Pro. Обикновено не натискате отделен бутон „свържи“: поискайте го в чата („запази имейлите от списъка с чакащи в база данни“) или напишете /database, и данните за връзка се въвеждат в работното пространство и в публикуваното ви приложение. В настройките на проекта се вижда дали базата данни е активна.
Базата данни заспива след 5 минути без активност и се събужда при следващата заявка. Използването при публикуваното приложение се таксува за времето, през което е била будна, от същия баланс с кредити, който използвате за създаване. Ако добавите база данни след като вече сте публикували, публикувайте отново, за да може живото приложение да я използва.
Вижте База данни и рецептата Създайте CRUD приложение в документацията. За частта с вход за данни по потребител прочетете как да добавите вход в приложението си.
Въпроси
Имам ли нужда от база данни за приложението си?
Да, веднага щом приложението трябва да запомня нещо между посещенията или да споделя данни между потребители: регистрации, поръчки, резервации, публикации или настройки. Статичен сайт, който показва едно и също съдържание на всички, не се нуждае от база данни.
Коя база данни да използвам за малко уеб приложение?
Релационна база данни като Postgres е сигурен избор по подразбиране за повечето малки уеб приложения. Работи добре с потребители, поръчки, връзки между данни и отчети, има широка поддръжка и при малък мащаб рядко ще я надраснете.
Мога ли да съхранявам данните в браузъра вместо в база данни?
Браузърното хранилище като localStorage живее само на едно устройство, в един браузър, и потребителят може да го изчисти по всяко време. Подходящо е за предпочитания, например избор на тема, но не и за нещо, което вие или други потребители трябва да виждате по-късно.
Включва ли Mythex база данни?
Да. Проект в Mythex може да получи собствена отделна Postgres база данни в Free и Pro. Поискате я в чата или използвате командата /database, а данните за връзка се въвеждат автоматично. Използването се плаща от същия баланс с кредити, както създаването.