Guider

Vad är Postgres? Databasen bakom många appar, förklarat

Postgres (officiellt PostgreSQL) är en gratis, öppen relationsdatabas: ett program som lagrar en apps data i tabeller med rader och kolumner, kopplar ihop tabellerna och besvarar frågor om dem på ett språk som kallas SQL. Det är känt för att vara pålitligt, strikt när det gäller att hålla data korrekt och tillräckligt flexibelt för allt från en anmälningslista till ett stort företags register. Många webbappar, och många av tjänsterna som hostar dem, bygger på det.

Varför det spelar roll när du bygger med AI

När en AI-appbyggare lägger till ”en databas” i ditt projekt är det en god chans att det är Postgres. Du behöver inte skriva SQL för att använda den, men lite förståelse tar dig långt:

  • Du kan beskriva data i den form databasen behöver. ”Kunder har många beställningar; varje beställning har många artiklar” översätts direkt till tabeller.
  • Du kan be om rätt skydd. Postgres kan själv neka dåliga data — en dubblett av e-post, en beställning för en kund som inte finns — om AI:n sätter upp reglerna.
  • Du kan läsa vad AI:n gjorde. Tabellnamn, kolumner och relationer är lätta att kontrollera i en tabellvisare, även om du aldrig rör koden.

En vardagsliknelse: ett mycket strikt arkivkontor

Tänk dig ett arkivkontor med ett skåp för varje sorts sak — ett för kunder, ett för beställningar, ett för produkter. Varje kort i en låda har samma tryckta rutor att fylla i. Varje kort har ett unikt nummer, och ett beställningskort upprepar inte kundens uppgifter; det säger bara ”kund nr 214”, med hänvisning till kundlådan.

Expeditionen är strikt. De accepterar inte en beställning som pekar på en kund som inte finns. De accepterar inte ett kort där datumrutan lämnats tom om den krävs. Och om du ber dem flytta pengar från ett kontokort till ett annat gör de antingen båda halvorna eller ingen — aldrig bara en.

Den expeditionen är Postgres. Lådorna är tabeller, de tryckta rutorna är kolumner, varje kort är en rad, och länken ”kund nr 214” är en främmande nyckel.

Vad Postgres är bra på

FunktionVad det betyder med enkla ord
Tabeller och relationerData ligger i tabeller som pekar på varandra, så att inget kopieras på fem ställen
SQLEtt standardspråk för att ställa frågor: ”alla obetalda beställningar från förra månaden, nyast först”
Transaktioner (ACID)En grupp ändringar sker antingen helt eller inte alls, även om servern kraschar mitt i
ConstraintsRegler som databasen själv upprätthåller: obligatoriska fält, unika e-postadresser, giltiga länkar mellan tabeller
IndexUppslagsgenvägar så att sökningar förblir snabba när tabellerna växer
JSONBLagra flexibel, dokumentliknande data i en kolumn när en fast struktur inte passar
FulltextsökningSök ord i textfält utan en separat sökteneste, för enkla fall
Tillägg (extensions)Tillägg som PostGIS för kartor och platser, eller pgvector för att lagra AI-embeddings
RadnivåsäkerhetRegler i databasen om vilka rader en given användare får se

Postgres började som ett forskningsprojekt vid University of California, Berkeley, på 1980-talet och har utvecklats öppet av en global gemenskap sedan 1990-talet. Den långa historien är anledningen till att det ofta är förstahandsvalet: det är väldokumenterat, brett stött, och varje stor molnleverantör erbjuder en hanterad version.

Ett praktiskt exempel: att göra om ett kalkylblad till tabeller

Säg att du driver ett litet cateringföretag och håller reda på allt i ett kalkylblad: varje rad är ett evenemang, med kundens namn, telefon och e-post, datumet, menyartiklarna och priset.

Problemen dyker snabbt upp. Samma kund finns på sex rader med två olika telefonnummer. Menyartiklarna är inskrivna i en cell som ”canapés x40, sallad x2”, så du kan inte summera hur många canapéer du gjorde den här månaden.

I Postgres blir samma information fyra tabeller:

TabellKolumnerAnmärkning
clientsid, name, phone, emailE-post måste vara unik
eventsid, client_id, date, venue, statusclient_id måste motsvara en riktig kund
menu_itemsid, name, unit_priceEn rad per rätt
event_itemsevent_id, menu_item_id, quantityKopplar evenemang till rätter, med en kvantitet

Nu finns en kunds telefonnummer på ett enda ställe. ”Hur många canapéer gjorde vi i mars?” är en enda SQL-fråga. Och när du sparar ett nytt evenemang med sina artiklar ser en transaktion till att du aldrig hamnar med ett evenemang där halva artiklarna är sparade.

Det här är steget folk hoppar över när de ber en AI att ”göra en app av mitt kalkylblad”. Guiden om hur du gör om ett kalkylblad till en app går längre.

Nyckeltermer

  • Tabell, rad, kolumn: en sorts sak, en instans av den, en uppgift om den.
  • Primärnyckel: den unika identifieraren för varje rad, oftast id.
  • Främmande nyckel: en kolumn som pekar på en rad i en annan tabell, som client_id.
  • Schema: designen av alla dina tabeller och kolumner.
  • Migrering: en sparad, upprepbar ändring av schemat, som ”lägg till en kolumn venue i events”.
  • Fråga (query): en fråga eller instruktion skriven i SQL.
  • Anslutningssträng: adressen och lösenordet din backend använder för att nå databasen. Det är en hemlighet — se miljövariabler och hemligheter.
  • Hanterad Postgres: en tjänst som kör, säkerhetskopierar och uppdaterar Postgres åt dig.

För de vardagliga operationer varje app utför på dessa tabeller — skapa, läsa, uppdatera, radera — se vad CRUD betyder.

Vanliga misstag och missuppfattningar

  • En gigantisk tabell. Att kopiera kalkylbladets kolumner en och en leder till samma dubbleringsproblem. Dela upp sådant som upprepas i egna tabeller.
  • Att lagra listor i ett textfält. ”canapés x40, sallad x2” i en enda kolumn kan inte räknas eller sökas ordentligt. Använd en kopplingstabell.
  • Inga constraints. Utan ”e-post måste vara unik” eller ”varje evenemang behöver en kund” kommer dålig data in tyst och dyker upp månader senare.
  • Att ändra databasen för hand i produktion. Be om schemaändringar som migreringar, så att ändringen registreras och kan upprepas.
  • Att låta webbläsaren prata direkt med databasen. Frontend bör gå genom din backend, som kontrollerar behörigheter. Databaslösenordet hör aldrig hemma i sidkod.
  • ”Postgres är bara för stora företag.” Det fungerar lika bra för en väntelista med 50 rader, och du behöver inte flytta från det när du växer.
  • Att anta att en databas är en säkerhetskopia. Den lagrar data; den skyddar inte automatiskt mot att du raderar den. Kontrollera vilka säkerhetskopior din värd erbjuder.

Vad du ska be din AI-byggare om

  • ”Spara [saker] i en databas. Tabeller: … med dessa fält: … Koppla varje [beställning] till en [kund].”
  • ”Gör e-post unik för kunder. Gör dessa fält obligatoriska. Tillåt inte en beställning utan kund.”
  • ”Använd migreringar för varje schemaändring.”
  • ”Lägg till index för de sökningar vi gör oftast: beställningar per kund och per datum.”
  • ”All databasåtkomst går via servern. Håll anslutningssträngen i miljövariabler.”

Om du är ny på idén om en databas alls, börja med vad en databas är och kom sedan tillbaka hit. En fullstack-app visar var databasen sitter bredvid frontend och backend.

Postgres på Mythex

Mythex ger varje projekt som behöver det en egen dedikerad Postgres-databas. Du konfigurerar inget: be i chatten (”spara väntelisteadresser i en databas”) eller använd kommandot /database, så kopplar Mythex den, injicerar anslutningsuppgifterna i din app, och kan skapa tabellerna åt dig. En publicerad apps databas somnar efter fem minuter utan aktivitet och vaknar vid nästa förfrågan, och du debiteras för den tid den faktiskt var vaken, från samma kreditsaldo som byggandet. Detaljer finns i databasdokumentationen, och instrumentpanelsmallar är ett bra ställe att se datadrivna appar.

Frågor

Är Postgres samma sak som PostgreSQL?

Ja. PostgreSQL är det officiella namnet och Postgres är det vanliga kortnamnet; båda syftar på samma öppna relationsdatabas.

Är Postgres gratis?

Ja. PostgreSQL är öppen källkod under den tillåtande PostgreSQL-licensen, så du kan använda den gratis, även i kommersiella produkter. Du betalar bara för servrarna eller den hanterade tjänst som kör den.

Vad är skillnaden mellan Postgres och MySQL?

Båda är gratis, relationella SQL-databaser och båda duger för de flesta appar. Postgres är känt för strikt dataintegritet, rika datatyper som JSONB och arrayer, och ett stort ekosystem av tillägg; MySQL är känt för enkelhet och en lång historia inom webbhosting.

Är Postgres bra för en liten app?

Ja. Det fungerar bra för en enkel väntelista med en tabell och för stora produktionssystem, så du behöver inte byta databas när appen växer. Hanterade tjänster gör det enkelt att köra utan databasadministratör.

Mythex · Pricing · Bygg vad som helst med AI · Mallar för webbplatser och appar · Mythex jämfört · Ordlista för apputveckling med AI · Gratis verktyg för apputveckling med 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 Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)