Гарын авлагууд

Postgres гэж юу вэ? Олон аппын ард байдаг өгөгдлийн сан

Postgres (албан ёсоор PostgreSQL) бол үнэгүй, нээлттэй эхтэй харилцааны өгөгдлийн сан юм: аппын өгөгдлийг мөр, багана бүхий хүснэгтэд хадгалж, хүснэгтүүдийг нь бие биентэй холбож, SQL хэмээх хэлээр тэдгээрийн талаарх асуултад хариулдаг программ. Найдвартай, өгөгдлийн зөв байдлыг хатуу хянадаг, мөн жагсаалтаас эхлээд том компанийн бичлэгүүд хүртэл зохицдог уян хатан гэдгээрээ алдартай. Олон вэб апп, мөн тэдгээрийг хостолдог үйлчилгээнүүд Postgres дээр суурилдаг.

Яагаад AI-аар бүтээхэд чухал вэ

AI app builder таны төсөлд «өгөгдлийн сан» нэмэхэд тэр нь Postgres байх магадлал өндөр. Та SQL ашиглах шаардлагагүй ч бага зэрэг ойлголт их тустай:

  • Өгөгдлийг өгөгдлийн санд хэрэгтэй хэлбэрээр тодорхойлж чадна. «Харилцагч олон захиалгатай; захиалга бүр олон зүйлтэй» гэдэг нь шууд хүснэгт болно.
  • Зөв хамгаалалтыг хүсч чадна. Postgres хэрэв AI тохируулсан бол муу өгөгдлийг өөрөө татгалзаж чадна — давхардсан имэйл, байхгүй харилцагчид заасан захиалга.
  • AI-ийн хийсэн зүйлийг уншиж чадна. Хүснэгтийн нэр, багана, холбоог хүснэгтийн харагч дээр шалгахад амар, код хүрч ч шаардлагагүй.

Өдөр тутмын зүйрлэл: маш хатуу бичгийн оффис

Төрөл бүрийн зүйлд зориулсан шүүгээ бүхий бичгийн оффисыг бодоорой — нэг нь харилцагчид, нэг нь захиалгад, нэг нь бүтээгдэхүүнд. Шүүгээний карт бүр ижил хэвлэсэн хайрцгуудыг бөглөдөг. Карт бүр өвөрмөц дугаартай; захиалгын карт харилцагчийн мэдээллийг давтдаггүй, зөвхөн «харилцагч #214» гэж заана, тэр нь харилцагчийн шүүгээ рүү заадаг.

Бичиг хөтлөгч маш хатуу. Байхгүй харилцагч руу заасан захиалгыг хадгалахгүй. Шаардлагатай талбарыг хоосон орхисон картыг авахгүй. Хэрэв та хоёр дансны картын хооронд мөнгө шилжүүлэхийг хүсвэл тэр хоёр талыг нь хийх эсвэл хоёуланг нь хийхгүй — хэзээ ч зөвхөн нэгийг нь биш.

Тэр бичиг хөтлөгч бол Postgres. Шүүгээ нь хүснэгт, хайрцаг нь багана, карт бүр мөр, «харилцагч #214» гэсэн холбоос нь foreign key юм.

Postgres юугаараа сайн вэ

ОнцлогЭнгийн хэлээр юу гэсэн үг вэ
Хүснэгт ба холбооӨгөгдөл бие биедээ заадаг хүснэгтүүдэд байдаг тул юу ч таван газарт хуулагдахгүй
SQLАсуулт тавих стандарт хэл: «өнгөрсөн сарын бүх төлөгдөөгүй захиалга, шинэ нь эхэнд»
Гүйлгээ (ACID)Өөрчлөлтийн бүлэг бүгд эсвэл огт болохгүй — сервер хагасаар унасан ч
ConstraintsӨгөгдлийн санд өөрөө хэрэгжүүлдэг дүрмүүд: шаардлагатай талбар, давтагдашгүй имэйл, хүснэгтүүдийн хүчинтэй холбоос
ИндексХүснэгт өсөхөд хайлт хурдан байлгах товчлол
JSONBБүтэц нь тогтмол биш бол баганад уян хатан, баримт шиг өгөгдөл хадгалах
Бүтэн текстийн хайлтЭнгийн тохиолдолд тусдаа хайлтын үйлчилгээгүйгээр текстийн талбараас үг хайх
ӨргөтгөлүүдНэмэлтүүд, жишээ нь газрын зурагт PostGIS, AI embedding хадгалахад pgvector
Мөрийн түвшний аюулгүй байдалТодорхой хэрэглэгч аль мөрийг харж болохыг өгөгдлийн санд дотооддоо дүрэмлэх

Postgres нь 1980-аад онд Калифорнийн Беркли их сургуулийн судалгааны төсөл байсан бөгөөд 1990-ээд оноос хойш дэлхийн хамт олноор нээлттэйгээр хөгжсөн. Энэ урт түүх нь үүнийг ихэвчлэн анхдагч сонголт болгодог: сайн баримтжуулсан, өргөн дэмжлэгтэй, мөн том cloud үйлчилгээ бүр түүний удирддаг хувилбарыг санал болгодог.

Жишээ: хүснэгтийг өгөгдлийн санд хөрвүүлэх

Та жижиг кейтерингийн бизнес эрхэлдэг бөгөөд бүх зүйлээ нэг хүснэгтэд хянадаг гэж бодъё: мөр бүр нэг арга хэмжээ, харилцагчийн нэр, утас, имэйл, огноо, цэсний зүйлс, үнэ.

Асуудлууд хурдан гарч ирнэ. Нэг харилцагч зургаан мөрөнд хоёр өөр утасны дугаартай. Цэсний зүйлс нэг нүдэнд «canapés x40, salad x2» гэж бичигдсэн тул энэ сард хэдэн canapés хийснээ нийлбэрлэж болохгүй.

Postgres-д ижил мэдээлэл дөрвөн хүснэгт болно:

ХүснэгтБаганаТэмдэглэл
clientsid, name, phone, emailИмэйл давтагдашгүй байх ёстой
eventsid, client_id, date, venue, statusclient_id нь жинхэнэ харилцагчтай таарах ёстой
menu_itemsid, name, unit_priceНэг хоолны нэг мөр
event_itemsevent_id, menu_item_id, quantityАрга хэмжээг хоолтой холбож, тоо хэмжээг өгнө

Одоо харилцагчийн утасны дугаар нэг газар байна. «3-р сард хэдэн canapés хийсэн бэ?» гэдэг нь нэг SQL асуулга. Шинэ арга хэмжээг түүний зүйлсийн хамт бүртгэхэд гүйлгээ таныг арга хэмжээ хагас зүйлтэй хадгалагдсан байх тохиолдлоос хамгаална.

Энэ бол хүмүүс «миний хүснэгтээс апп бүтээ» гэж AI-аас гуйхдаа алгасдаг алхам юм. Хүснэгтийг апп болгох гарын авлага илүү дэлгэрэнгүй тайлбарладаг.

Гол нэр томъёо

  • Хүснэгт, мөр, багана: нэг төрлийн зүйл, түүний нэг тохиолдол, түүний тухай нэг мэдээлэл.
  • Primary key: мөр бүрийн давтагдашгүй ID, ихэвчлэн id.
  • Foreign key: өөр хүснэгтийн мөрд заадаг багана, жишээ нь client_id.
  • Schema: бүх хүснэгт, баганын загвар.
  • Migration: schema-ийн хадгалагдсан, давтагдах өөрчлөлт, жишээ нь «events-д venue багана нэм».
  • Query: SQL-ээр бичсэн асуулт эсвэл заавар.
  • Connection string: backend-ийн өгөгдлийн санд холбогдох хаяг, нууц үг. Энэ бол нууц — орчны хувьсагч ба нууцууд-ийг харна уу.
  • Managed Postgres: Postgres-ийг танд ажиллуулж, нөөцлөж, шинэчилдэг үйлчилгээ.

Эдгээр хүснэгтүүд дээр апп бүрийн гүйцэтгэдэг үндсэн үйлдлүүд — үүсгэх, унших, шинэчлэх, устгах — -ийн талаар CRUD гэж юу вэ-г харна уу.

Түгээмэл алдаа ба буруу ойлголт

  • Нэг том хүснэгт. Хүснэгтийн баганыг нь хуулж авах нь ижил давхардлын асуудалд хүргэдэг. Давтагддаг зүйлсийг тусдаа хүснэгт болгон хуваа.
  • Жагсаалтыг нэг текст талбарт хадгалах. Нэг баганад «canapés x40, salad x2» гэж байвал зөв тоолж эсвэл хайж болохгүй. Холбох хүснэгт ашигла.
  • Хязгаарлалтгүй. «Имэйл давтагдашгүй байх» эсвэл «арга хэмжээ бүрт харилцагч байх» гэх мэт дүрмгүйгээр муу өгөгдөл чимээгүй орж, хэдэн сарын дараа гарч ирдэг.
  • Production дээр өгөгдлийн санг гараар өөрчлөх. Schema-ийн өөрчлөлтийг migration хэлбэрээр хүс, ингэснээр өөрчлөлт бүртгэгдэж, давтагдах боломжтой байна.
  • Хөтөч өгөгдлийн санд шууд хандах. Фронтэнд таны серверээр дамжих ёстой, сервер зөвшөөрлийг шалгадаг. Өгөгдлийн сангийн нууц үг хуудасны кодонд хэзээ ч байх ёсгүй.
  • «Postgres зөвхөн том компаниудад.» Энэ 50 мөрийн жагсаалтад ч адилхан сайн ажилладаг, мөн та өсөхдөө үүнээс шилжих шаардлагагүй.
  • Өгөгдлийн санг нөөцлөлт гэж үзэх. Энэ нь өгөгдлийг хадгалдаг; устгахаас автоматаар хамгаалдаггүй. Хостингийнхээ нөөцлөлтийг шалгаарай.

AI builder-доо юу гэж хүсэх вэ

  • «[Зүйлс]-ийг өгөгдлийн санд хадгал. Хүснэгтүүд: … дараах талбаруудтай: … Захиалга бүрийг [харилцагч]-тай холбо.»
  • «Харилцагчийн имэйлийг давтагдашгүй болго. Эдгээр талбарыг шаардлагатай болго. Харилцагчгүй захиалгыг зөвшөөрөхгүй бай.»
  • «Schema-ийн өөрчлөлт бүрт migration ашигла.»
  • «Хамгийн их хийдэг хайлтад индекс нэм: харилцагчаар болон огнооны дагуу захиалгууд.»
  • «Бүх өгөгдлийн сангийн хандалт серверээр дамжина. Connection string-ийг орчны хувьсагчдад хадгал.»

Хэрэв та өгөгдлийн санг огт шинэ ойлгож байгаа бол өгөгдлийн сан гэж юу вэ-аас эхэл, дараа нь буцаж ир. Full-stack апп нь өгөгдлийн сан фронтэнд, backend-ийн хажууд хаана байрлахыг харуулна.

Postgres Mythex дээр

Mythex нь өгөгдөл шаардах төсөл бүрт тусдаа Postgres өгөгдлийн санг өгдөг. Та тохируулах шаардлагагүй: чатад асуух («waitlist-ийн имэйлүүдийг өгөгдлийн санд хадгал») эсвэл /database командыг ашиглах бөгөөд Mythex үүнийг холбож, холболтын мэдээллийг аппд оруулж, хүснэгтүүдийг танд үүсгэж чадна. Нийтэлсэн аппын өгөгдлийн сан таван минут idle байвал унтаж, дараагийн хүсэлтэд сэрнэ, мөн та зөвхөн сэрсэн хугацаанд төлнө — бүтээх кредитийн нэг үлдэгдлээс. Дэлгэрэнгүйг өгөгдлийн сангийн баримт-аас, өгөгдөлтэй аппуудыг харах сайн газар нь хяналтын самбарын загварууд.

Асуултууд

Postgres ба PostgreSQL нэг зүйл үү?

Тийм. PostgreSQL бол албан ёсны нэр, Postgres бол түгээмэл товчилсон нэр; хоёулаа нэг нээлттэй эхтэй харилцааны өгөгдлийн санг заана.

Postgres үнэгүй юу?

Тийм. PostgreSQL нь зөвшөөрөгдсөн PostgreSQL License-оор нээлттэй эх бөгөөд арилжааны бүтээгдэхүүнд ч гэсэн үнэгүй ашиглаж болно. Та зөвхөн ажиллуулж буй сервер эсвэл удирдуулсан үйлчилгээнд төлнө.

Postgres ба MySQL-ийн ялгаа юу вэ?

Хоёулаа үнэгүй, харилцааны SQL өгөгдлийн сан бөгөөд ихэнх аппд сайн. Postgres нь өгөгдлийн бүрэн бүтэн байдлыг хатуу хангадгаараа, JSONB болон массив зэрэг баялаг өгөгдлийн төрлөөрөө, өргөтгөлийн өргөн экосистемээрээ алдартай; MySQL нь энгийн байдал, вэб хостингт урт удаан хэрэглэгдсэнээрээ алдартай.

Жижиг аппд Postgres тохиромжтой юу?

Тийм. Нэг хүснэгттэй waitlist-д болон том production системд хоёуланд нь сайн ажилладаг тул аппаа өсөхөд өгөгдлийн сан солих шаардлагагүй. Managed үйлчилгээнүүд нь өгөгдлийн санг администратортой байлгахгүйгээр ажиллуулахад хялбар болгодог.

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 简体中文 繁體中文(香港) 繁體中文(台灣)