Водичи

Што е Postgres? Базата на податоци зад многу апликации, објаснета

Postgres (официјално PostgreSQL) е бесплатна, отворен-код релациона база на податоци: програма што ги чува податоците на една апликација во табели со редови и колони, ги поврзува тие табели меѓусебно и одговара на прашања за нив на јазик наречен SQL. Познат е по тоа што е сигурен, строг во одржувањето на податоците точни и доволно флексибилен за сè — од листа за регистрација до евиденција на голема компанија. Многу веб-апликации, и многу од услугите што ги хостираат, се изградени врз него.

Зошто е важен кога градиш со вештачка интелигенција

Кога AI алатка за изработка апликации ќе додаде „база на податоци“ во твојот проект, голема е веројатноста дека е Postgres. Не мораш да пишуваш SQL за да го користиш, но малку разбирање многу помага:

  • Можеш да ги опишеш податоците во обликот што базата го бара. „Клиентите имаат многу нарачки; секоја нарачка има многу ставки“ директно се претвора во табели.
  • Можеш да побараш вистинска заштита. Postgres може сам да одбие лоши податоци — дупликат е-пошта, нарачка за клиент што не постои — ако AI ги постави правилата.
  • Можеш да го прочиташ она што го направила AI. Имињата на табелите, колоните и врските лесно се проверуваат во прегледувач на табели, дури и ако никогаш не ги допреш кодот.

Секојдневна аналогија: многу строга архива

Замисли архива со ормар за секој вид нешто — еден за клиенти, еден за нарачки, еден за производи. Секоја картичка во фиоката има исти печатени полиња за пополнување. Секоја картичка има единствен број, а картичката за нарачка не ги повторува деталите на клиентот; таа само вели „клиент #214“, покажувајќи кон фиоката за клиенти.

Службеникот е строг. Нема да заведе нарачка што покажува кон клиент што не постои. Нема да прими картичка со празно поле за датум ако тоа е задолжително. И ако го замолиш да пренесе пари од една картичка за сметка на друга, или ќе ги направи двете половини, или ниедна — никогаш само една.

Тој службеник е Postgres. Фиоките се табели, печатените полиња се колони, секоја картичка е ред, а врската „клиент #214“ е странциран клуч (foreign key).

Во што е добар Postgres

ФункцијаШто значи со обични зборови
Табели и врскиПодатоците живеат во табели што покажуваат една кон друга, така што ништо не се копира на пет места
SQLСтандарден јазик за поставување прашања: „сите неплатени нарачки од минатиот месец, најновите први“
Трансакции (ACID)Група промени или сите се случуваат или ниедна не се случува, дури и ако серверот падне на половина
Ограничувања (constraints)Правила што базата сама ги спроведува: задолжителни полиња, единствени е-пошти, валидни врски меѓу табелите
ИндексиКратенки за пребарување, за пребарувањата да остануваат брзи како што растат табелите
JSONBЧување флексибилни податоци во стил на документ во колона, кога фиксната структура не одговара
Полнотекстуално пребарувањеПребарување на зборови во текстуални полиња без посебна услуга за пребарување, за едноставни случаи
ПроширувањаДодатоци како PostGIS за мапи и локации, или pgvector за чување AI embeddings
Безбедност на ниво на редовиПравила во базата за тоа кои редови може да ги види даден корисник

Postgres почна како истражувачки проект на Универзитетот во Калифорнија, Беркли, во 1980-тите, и од 1990-тите го развива отворено глобална заедница. Таа долга историја е причината зошто често е стандарден избор: добро документиран е, широко поддржан, а секој голем облачен провајдер нуди управувана верзија.

Работен пример: претворање табела во табели

Да речеме дека водиш мал кетеринг бизнис и сè следиш во една табела: секој ред е настан, со име, телефон и е-пошта на клиентот, датумот, ставките од менито и цената.

Проблемите брзо се појавуваат. Истиот клиент се јавува во шест реда со два различни телефонски броја. Ставките од менито се напишани во една ќелија како „канапеа x40, салата x2“, па не можеш да ги собереш колку канапеа си направил овој месец.

Во Postgres, истите информации стануваат четири табели:

ТабелаКолониЗабелешки
clientsid, name, phone, emailЕ-поштата мора да е единствена
eventsid, client_id, date, venue, statusclient_id мора да одговара на вистински клиент
menu_itemsid, name, unit_priceПо еден ред за јадење
event_itemsevent_id, menu_item_id, quantityГи поврзува настаните со јадењата, со количина

Сега телефонскиот број на клиентот живее на едно место. „Колку канапеа направивме во март?“ е едно SQL барање. А кога ќе запишеш нов настан со неговите ставки, трансакцијата осигурува никогаш да не завршиш со настан чии половина ставки се зачувани.

Ова е чекорот што луѓето го прескокнуваат кога ќе побараат од AI „направи апликација од мојата табела“. Водичот за претворање табела во апликација оди подалеку.

Клучни термини

  • Табела, ред, колона: вид на нешто, еден примерок од него, една информација за него.
  • Примарен клуч: единствениот ID на секој ред, обично id.
  • Странциран клуч (foreign key): колона што покажува кон ред во друга табела, како client_id.
  • Шема (schema): дизајнот на сите твои табели и колони.
  • Миграција: зачувана, повторлива промена на шемата, како „додај колона venue во events“.
  • Query: прашање или инструкција напишана во SQL.
  • Connection string: адресата и лозинката со кои твојот backend ја достигнува базата. Тоа е тајна — види променливи на околината и тајни.
  • Управуван Postgres: услуга што за тебе го извршува, прави резервни копии и го ажурира Postgres.

За секојдневните операции што секоја апликација ги извршува над овие табели — создавање, читање, ажурирање, бришење — види што значи CRUD.

Чести грешки и погрешни претстави

  • Една огромна табела. Копирањето на колоните од табелата една по една води до истите проблеми со дупликати. Раздели ги работите што се повторуваат во сопствени табели.
  • Чување листи во едно текстуално поле. „канапеа x40, салата x2“ во една колона не може правилно да се броји или пребарува. Користи табела за поврзување.
  • Без ограничувања. Без „е-поштата мора да е единствена“ или „секој настан треба клиент“, лошите податоци тивко влегуваат и се појавуваат месеци подоцна.
  • Рачно менување на базата во продукција. Бара промени на шемата како миграции, за промената да биде забележана и повторлива.
  • Дозволување прелистувачот директно да разговара со базата. Фронтендот треба да оди преку твојот backend, кој ги проверува дозволите. Лозинката за базата никогаш не припаѓа во кодот на страницата.
  • „Postgres е само за големи компании.“ Подеднакво добро работи за листа за чекање од 50 редови, а нема да треба да се префрлуваш од него кога ќе растеш.
  • Претпоставка дека базата е резервна копија. Таа ги чува податоците; не те заштитува автоматски од нивно бришење. Провери кои резервни копии ги обезбедува твојот хост.

Што да побараш од твојата AI алатка

  • „Зачувај [работи] во база на податоци. Табели: … со овие полиња: … Поврзи секоја [нарачка] со еден [клиент].“
  • „Направи е-поштата единствена кај клиентите. Овие полиња нека бидат задолжителни. Не дозволувај нарачка без клиент.“
  • „Користи миграции за секоја промена на шемата.“
  • „Додај индекси за пребарувањата што ги правиме најчесто: нарачки по клиент и по датум.“
  • „Сиот пристап до базата минува низ серверот. Чувај го connection string-от во променливи на околината.“

Ако воопшто си нов во идејата за база на податоци, започни со што е база на податоци, па врати се овде. Апликација со целосен стек покажува каде е базата покрај фронтендот и backend-от.

Postgres во Mythex

Mythex му дава на секој проект што има потреба своја посветена Postgres база. Не конфигурираш ништо: побарај во разговор („зачувај е-пошти од листата за чекање во база“) или користи ја командата /database, а Mythex ја приклучува, ги внесува податоците за врска во твојата апликација и може да ги создаде табелите за тебе. Базата на објавена апликација заспива по пет минути неактивност и се буди при следното барање, а ти се наплаќа времето кога навистина била будна, од истиот баланс на кредити што се користи за градење. Деталите се во документацијата за базата, а шаблоните за табли се добро место да видиш апликации со податоци.

Прашања

Дали Postgres е исто што и PostgreSQL?

Да. PostgreSQL е официјалното име, а Postgres е вообичаеното кратко име; и двете се однесуваат на истата релациона база на податоци со отворен код.

Дали Postgres е бесплатен?

Да. PostgreSQL е со отворен код под толерантната PostgreSQL лиценца, па можеш да го користиш бесплатно, вклучително и во комерцијални производи. Плаќаш само за серверите или за управуваната услуга што го извршува.

Која е разликата помеѓу Postgres и MySQL?

И двете се бесплатни релациони SQL бази и двете се добри за повеќето апликации. Postgres е познат по строг интегритет на податоците, богати типови на податоци како JSONB и низи и голем екосистем на проширувања; MySQL е познат по едноставноста и долгата историја во веб-хостирањето.

Дали Postgres е добар за мала апликација?

Да. Работи добро и за една едноставна листа за чекање и за големи производни системи, па нема да треба да менуваш база како што апликацијата расте. Управуваните услуги ја прават работата лесна без администратор на база.

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