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