Апп-даа өгөгдлийн сан хэрхэн нэмэх (хожим өгөгдлөө алдахгүйгээр)
Апп-даа өгөгдлийн сан нэмэхийн тулд удирдамжтай харилцааны өгөгдлийн сан (ихэвчлэн Postgres) сонгож, түүний холболтын мөрийг серверийн талд нууц утгад хадгал, таны хадгалах зүйл бүрийн төрөлд нэг хүснэгт үүсгэж, өгөгдлийг хөтөч биш, харин backend-ээр уншиж, бичүүлээрэй. Хэрэв AI апп бүтээгчээр бүтээж байгаа бол ихэвчлэн «үүнийг өгөгдлийн санд хадгал» гэж хэлэхэд л агент хүснэгт болон кодыг тохируулдаг. Таны ажил бол өгөгдлөө тодорхой тайлбарлах, мөн үнэхээр хадгалагдаж байгаа эсэхийг шалгах.
Энэ гарын авлагад таанд өгөгдлийн сан хэзээ хэрэгтэй вэ, гол сонголтууд, өгөгдлөө хэрхэн тайлбарлах, мөн өгөгдөл алдагдах эсвэл задрахад хүргэдэг алдаануудын талаар байна.
Таны апп-д өгөгдлийн сан хэзээ хэрэгтэй вэ
Апп чинь хуудсыг хаасны дараа ямар нэг зүйлийг санах, эсвэл хүмүүсийн хооронд өгөгдлөө хуваалцах шаардлагатай үед өгөгдлийн сан хэрэгтэй. Ердийн шинж тэмдгүүд:
- Зочид ямар нэг зүйл илгээдэг: маягт, бүртгэл, цаг захиалга, захиалга
- Хэрэглэгчид өөрийн хадгалсан агуулгатай бүртгэлтэй байдаг
- Админ бусдын үүсгэсэн зүйлийг харах эсвэл засах хэрэгтэй
- Тухайн хугацааны тайлан эсвэл тоолуур хэрэгтэй
Бүх хүнд ижил агуулга харагддаг статик сайт, жишээ нь портфолио эсвэл энгийн landing хуудас, өгөгдлийн сан шаардахгүй. Хэрэв өгөгдлийн сан гэж юу болохыг мэдэхгүй бол эхлээд өгөгдлийн сан гэж юу вэ гэдгийг уншина уу.
Таны сонголтууд
| Сонголт | Юу вэ | Тохиромжтой | Анхаарах зүйл |
|---|---|---|---|
| AI апп бүтээгчийн суулгасан өгөгдлийн сан | Таны төсөлд үүсгэж холбосон өгөгдлийн сан | AI бүтээгчээр бүтээсэн ихэнх апп | Тухайн платформын хостингоос хамаарна; экспорт, нөөцлөлт платформоос хамаарна |
| Managed Postgres эсвэл MySQL | Тусад нь бүртгүүлдэг хостингийн харилцааны өгөгдлийн сан | Өөрөө хостинглодог апп, эсвэл хэд хэдэн үйлчилгээ хуваалцдаг өгөгдөл | Түлхүүр, холболтын хязгаар, тарифыг өөрөө удирдана |
| Backend-as-a-service | Өгөгдлийн сан, нэвтрэлт, файлын хадгалалт, API нэг бүтээгдэхүүнд | Бэлэн нэвтрэлт хэрэгтэй frontend-ээр голлосон апп | Нэг үйлчилгээнд хамаарах нэмэлт ойлголтууд суралцах хэрэгтэй |
| Баримт (NoSQL) өгөгдлийн сан | JSON маягийн уян баримтуудыг хадгалдаг | Маш жигд бус өгөгдөл | Холбоо, тайлан гаргахад хэцүү |
| Хүснэгтийг өгөгдлийн сан болгох | Google Sheets эсвэл төстэй зүйлийг API-гаар | Жижиг дотоод хэрэгсэл, прототип | Удаан, бодит хязгаарлалтгүй, зэрэгцээ засварт эвдэрнэ |
Ихэнх жижиг, дунд вэб аппд Postgres зэрэг харилцааны өгөгдлийн сан зөв анхдагч сонголт юм. Энэ нь холбоос сайн ойлгодог (нэг харилцагч олон захиалгатай), өгөгдлийг тогтвортой байлгадаг, мөн дараа SQL-ээр асуулт тавих боломж олгодог. Энгийн тайлбарт Postgres гэж юу вэ хуудсыг үзнэ үү.
Бүтээхээсээ өмнө өгөгдлөө тодорхойл
Хамгийн хэрэгтэй зүйл бол таны апп хадгалах зүйлсээ болон тэдгээр хэрхэн холбогдохыг бичиж тэмдэглэх явдал юм. Өгөгдлийн сангийн мэргэжлийн үг хэрэггүй. Жишээ нь цаг захиалгын аппд:
- Харилцагчид: нэр, имэйл, утас
- Үйлчилгээнүүд: нэр, үргэлжлэх хугацаа, үнэ
- Захиалгууд: аль харилцагч, аль үйлчилгээ, эхлэх цаг, төлөв (хүлээгдэж буй, баталгаажсан, цуцлагдсан)
Энэ нь гурван хүснэгт. «Аль харилцагч» ба «аль үйлчилгээ» нь тэдгээрийн хоорондох холбоос (foreign key) болно. Үүнийг эрт зөв хийх нь ямар ч технологи сонгохоос илүү чухал, учир нь бодит мөрүүд байгаа өгөгдлийн хэлбэрийг өөрчлөх нь хуудасны зохион байгуулалтыг өөрчлөхөөс хамаагүй хэцүү.
Зарим дүрэм:
- Нэг төрөл бүрт нэг хүснэгт. Захиалгыг харилцагчийн текст баганад бүү хийгээрэй.
- Мөр бүрт ID болон үүсгэсэн огноо өгөөрэй. Дараа хэрэг болно.
- Зөв төрөл ашиглаарай. Огноог огноо, мөнгийг бүхэл цент эсвэл аравтын төрлөөр, текст биш.
- Заавал шаардлагатай талбарыг тэмдэглээрэй. Буруу өгөгдлийг зөвхөн маягт биш, өгөгдлийн сан өөрөө татгалзуулаарай.
Жишээ зааврууд
Бүх схемийг нэг дор бүү хаяад, нэг функцээр эхэлнэ үү:
Энэ аппд өгөгдлийн сан нэмээрэй. Захиалгын хүснэгт үүсгэж, харилцагчийн нэр, имэйл, үйлчилгээ, эхлэх цаг, төлөв (хүлээгдэж буй, баталгаажсан, цуцлагдсан; анхдагч нь хүлээгдэж буй) талбартай болгоорой. Цаг захиалгын маягтын илгээлтийг үүнд хадгалж, амжилттай мессеж харуулаад, шинэ нь эхэнд байхаар жагсаасан админ хуудас нэмээрэй.
Дараа нь өргөтгөнө үү:
Үйлчилгээний хүснэгт нэмээрэй (нэр, үргэлжлэх хугацаа минутаар, үнэ центээр). Захиалгын чөлөөт текст үйлчилгээний талбарыг үйлчилгээний холбоосоор солиод, одоо байгаа захиалгуудыг устгахгүйгээр шилжүүл.
Бас чангатгаарай:
Өгөгдлийн сангийн бүх унших, бичих үйлдэл серверт явагдаг байг. Хөтөч өгөгдлийн сангийн холболтын мөрийг хэзээ ч авахгүй байх ёстой. Оруулахаасаа өмнө имэйл болон эхлэх цагийг серверт баталгаажуулаарай.
Алхам алхмаар
- Өгөгдлөө жагсаа дээрх шиг: зүйлс, талбарууд, тэдгээрийн холбоо.
- Өгөгдлийн санг үүсгэ. AI бүтээгчид чатаар хүс. Бусад газар managed Postgres үүсгээд, холболтын мөрийг хуулаарай.
- Холболтын мөрийг нууц утга (серверийн орчны хувьсагч) гэж хадгал, код дотор хэзээ ч бүү бич. Холбоотой мэдээлэл: орчны хувьсагч ба нууц утгууд.
- Хүснэгтүүдийг үүсгэ. Схемийг өөрчлөх хувилбарлагдсан скриптүүд болох миграци ашигла, ингэснээр өөрчлөлтүүд давтагдах, буцаах боломжтой байна.
- Серверийн маршрутуудыг бүтээ мөр үүсгэх, унших, шинэчлэх, устгах (CRUD). Хөтөч эдгээр маршрутыг дуудах ба өгөгдлийн сантай шууд харилцахгүй.
- UI-г холбо: хадгалдаг маягтууд, ачаалдаг жагсаалтууд, юу ч байхгүй үеийн хоосон төлөвүүд.
- Хадгалалтыг шалга. Ямар нэг зүйл илгээж, хуудсыг дахин ачаалж, өөр хөтөчид нээ. Өгөгдөл байхгүй бол өгөгдлийн санд хадгалагдаагүй байна гэсэн үг.
- Хандалтыг шалга. Хоёр дахь хэрэглэгчээр нэвтэрч, эхний хэрэглэгчийн өгөгдлийг харах эсвэл засах боломжгүйг баталгаажуул.
- Нийтлээд, дараа нь шууд URL дээр дахин туршиж үз, учир нь нийтлэгдсэн апп таны урьдчилан харахаас өөр холболт ашиглаж магадгүй.
Түгээмэл алдаанууд
- Хөтөчид хадгалаад хадгалагдсан гэж бодох. localStorage ажиллаж байгаа мэт харагддаг ч апп-ыг өөр төхөөрөмжид нээхэд алга болно. Үргэлж хоёр дахь хөтөч дээр туршаарай.
- Холболтын мөрийг frontend кодонд хийх. Frontend кодыг хэн ч уншиж болно. Энэ нь таны бүх өгөгдлийн санд хандах эрхийг өгнө.
- Хандалтын шалгалтгүй байх. «Миний захиалгуудыг харуул» нь нэвтэрсэн хэрэглэгчээр серверт шүүгдэх ёстой, UI-д биш. Энэ бол AI-ээр бүтээсэн аппд хамгийн түгээмэл аюулгүй байдлын сул тал; манай аюулгүй байдлын шалгах жагсаалт үүнийг тайлбарласан.
- Устгах шинж чанартай схемийн өөрчлөлт. «Хүснэгтийн нэрийг солих» эсвэл «бүтцийг өөрчлөх» гэвэл хүснэгтийг устгаад дахин үүсгэж магадгүй. Жинхэнэ өгөгдөл байгаа үед «одоо байгаа мөрүүдийг шилжүүл, юу ч бүү устга» гэж хэл.
- Файлыг өгөгдлийн санд хадгалах. Зураг, PDF файлууд файлын хадгалалтад байх ёстой, хүснэгтэд зөвхөн тэдгээрийн URL эсвэл түлхүүрийг хадгална. Холбоотой мэдээлэл: файл байршуулалтыг хэрхэн нэмэх.
- Нөөцлөлт байхгүй байх. Харилцагчтай болохоосоо өмнө платформ өгөгдлөө хэрхэн нөөцөлдөг, сэргээдэг талаар мэдээрэй.
Шалгах жагсаалт
- Төрөл бүр өөрийн ID болон үүсгэсэн огноотой хүснэгттэй
- Заавал шаардлагатай талбарууд болон төрлүүдийг өгөгдлийн сан хангана
- Холболтын мөрийг зөвхөн серверийн нууц утгад хадгална
- Бүх унших, бичих үйлдэл серверийн маршрутаар дамжина
- Хэрэглэгч бүр зөвхөн өөрийн мөрийг унших, өөрчлөх боломжтой
- Өгөгдөл дахин ачаалсны дараа хадгалагдаж, өөр хөтөчид харагдана
- Схемийн өөрчлөлт миграци ашиглаж, одоо байгаа мөрүүдийг хадгална
- Нөөцлөлт болон сэргээлт хэрхэн ажилладагийг мэдэж байна
- Нийтэлсний дараа амьд апп-ыг туршсан
Mythex дээр өгөгдлийн сан нэмэх
Mythex дээр төсөл бүр өөрийн тусгай Postgres өгөгдлийн санг авах боломжтой, Free болон Pro хоёр дээр. Ихэвчлэн тусад нь «холбох» товч дарах шаардлагагүй: чатад хүсэх («имэйл хаягуудыг өгөгдлийн санд хадгалаарай») эсвэл /database гэж бичнэ, холболтын мэдээлэл ажлын орчин болон нийтлэгдсэн аппд автоматаар оруулагдана. Төслийн тохиргоонд өгөгдлийн сан идэвхтэй эсэх харагдана.
Өгөгдлийн сан 5 минут ажиллахгүй байвал унтдаг бөгөөд дараагийн хүсэлтээр сэрдэг. Нийтлэгдсэн ашиглалт нь үнэхээр сэрүүн байсан хугацаагаар тооцогдож, бүтээх үеийнхтэй ижил кредитийн үлдэгдлээс төлөгдөнө. Нийтлэсний дараа өгөгдлийн санг нэмсэн бол амьд апп шинэ холболтыг авахын тулд дахин нийтэл.
Дэлгэрэнгүйг docs-ын Өгөгдлийн сан болон CRUD апп бүтээх жороос үзнэ үү. Хэрэглэгч бүрийн өгөгдлийн нэвтрэлтийн талд апп-даа нэвтрэлт хэрхэн нэмэх гарын авлагыг уншина уу.
Асуултууд
Миний апп-д өгөгдлийн сан хэрэгтэй юу?
Апп чинь зочин хуудаснаас гарсны дараа ямар нэг зүйлийг санах, эсвэл хэрэглэгчдийн хооронд өгөгдлөө хуваалцах шаардлагатай болмогц хэрэгтэй болно. Жишээ нь: бүртгэл, захиалга, цаг захиалга, нийтлэл эсвэл тохиргоо. Бүх хүнд ижил агуулгыг харуулдаг статик вэбсайтад өгөгдлийн сан хэрэггүй.
Жижиг вэб апп-д ямар өгөгдлийн сан ашиглах вэ?
Postgres зэрэг харилцааны (relational) өгөгдлийн сан ихэнх жижиг вэб аппд найдвартай анхдагч сонголт юм. Хэрэглэгч, захиалга, холбоос болон тайлан гаргахад сайн ажилладаг, өргөн дэмжлэгтэй, жижиг хэмжээнд бараг хэзэлдэггүй.
Өгөгдлөө өгөгдлийн сангийн оронд хөтөчид хадгалж болох уу?
localStorage зэрэг хөтөчийн санах ой нь нэг төхөөрөмж, нэг хөтөчид л байдаг бөгөөд хэрэглэгч хүссэн үедээ устгаж болно. Өнгөний сонголт зэрэг тохиргоонд зохиолтой ч та эсвэл бусад хэрэглэгчид дараа нь харах шаардлагатай зүйлд тохиромжгүй.
Mythex-д өгөгдлийн сан багтдаг уу?
Тийм. Mythex төсөл бүр Free болон Pro дээр өөрийн тусгай Postgres өгөгдлийн санг авч чадна. Чатад хүсэх эсвэл /database командыг ашиглахад холболтын мэдээлэл автоматаар оруулагдана. Ашиглалт нь бүтээх үйлдэлтэй ижил кредитийн үлдэгдлээс төлөгдөнө.