คู่มือ

วิธีเพิ่มฐานข้อมูลให้แอปของคุณ (โดยไม่ทำให้ข้อมูลหายในภายหลัง)

การเพิ่มฐานข้อมูลให้แอป ให้เลือกฐานข้อมูลเชิงสัมพันธ์แบบจัดการให้ (Postgres เป็นตัวเลือกที่นิยมที่สุด) เก็บสตริงการเชื่อมต่อไว้เป็นความลับฝั่งเซิร์ฟเวอร์ สร้างหนึ่งตารางต่อข้อมูลหนึ่งประเภทที่แอปเก็บ และให้แบ็กเอนด์เป็นตัวอ่านและเขียนข้อมูล ไม่ใช่เบราว์เซอร์ ถ้าคุณสร้างด้วยเครื่องมือ AI ส่วนใหญ่คุณเพียงพิมพ์ว่า "บันทึกสิ่งนี้ลงฐานข้อมูล" แล้วเอเจนต์จะตั้งค่าตารางและเขียนโค้ดให้ หน้าที่ของคุณคืออธิบายข้อมูลให้ชัดเจนและตรวจสอบว่าข้อมูลถูกบันทึกจริง

คู่มือนี้ครอบคลุมว่าเมื่อไรที่ต้องใช้ฐานข้อมูล ตัวเลือกหลัก วิธีอธิบายข้อมูล และข้อผิดพลาดที่ทำให้ข้อมูลสูญหายหรือรั่วไหล

เมื่อไรที่แอปของคุณต้องใช้ฐานข้อมูล

คุณต้องใช้ฐานข้อมูลเมื่อแอปต้อง จดจำ บางอย่างหลังจากปิดหน้าเว็บ หรือ แชร์ ข้อมูลระหว่างผู้คน สัญญาณทั่วไปมีดังนี้

  • ผู้เข้าชมส่งบางอย่าง เช่น แบบฟอร์ม การสมัคร การจอง หรือคำสั่งซื้อ
  • ผู้ใช้มีบัญชีพร้อมเนื้อหาที่บันทึกไว้ของตัวเอง
  • ผู้ดูแลต้องเห็นหรือแก้ไขสิ่งที่คนอื่นสร้างไว้
  • คุณต้องการรายงานหรือจำนวนที่นับตามช่วงเวลา

คุณไม่จำเป็นต้องใช้ฐานข้อมูลสำหรับเว็บไซต์แบบสแตติกที่ทุกคนเห็นเนื้อหาเดียวกัน เช่น พอร์ตโฟลิโอหรือหน้า landing แบบเรียบง่าย ถ้าคุณยังไม่แน่ใจว่าฐานข้อมูลคืออะไร ให้อ่าน ฐานข้อมูลคืออะไร ก่อน

ตัวเลือกของคุณ

ตัวเลือกคืออะไรเหมาะกับข้อแลกเปลี่ยน
ฐานข้อมูลในตัวจากเครื่องมือสร้างแอปฐานข้อมูลที่สร้างและเชื่อมต่อให้โปรเจกต์แอปส่วนใหญ่ที่สร้างด้วยเครื่องมือ AIผูกกับระบบโฮสต์ของแพลตฟอร์มนั้น การส่งออกและสำรองข้อมูลขึ้นกับแพลตฟอร์ม
Postgres หรือ MySQL แบบจัดการฐานข้อมูลเชิงสัมพันธ์ที่โฮสต์ไว้ ซึ่งคุณสมัครแยกต่างหากแอปที่คุณโฮสต์เองหรือหลายบริการใช้ร่วมกันคุณต้องจัดการคีย์ จำนวนการเชื่อมต่อ และแพ็กเกจเอง
Backend-as-a-serviceฐานข้อมูลพร้อมระบบยืนยันตัวตน พื้นที่เก็บไฟล์ และ API ในผลิตภัณฑ์เดียวแอปที่เน้นฝั่งหน้าบ้านและต้องการระบบล็อกอินสำเร็จรูปมีแนวคิดเฉพาะของผู้ให้บริการที่ต้องเรียนรู้เพิ่ม
ฐานข้อมูลแบบเอกสาร (NoSQL)เก็บเอกสารที่มีโครงสร้างยืดหยุ่นคล้าย JSONข้อมูลที่ไม่เป็นระเบียบมากความสัมพันธ์และการทำรายงานทำได้ยากกว่า
สเปรดชีตเป็นฐานข้อมูลGoogle Sheets หรือคล้ายกันผ่าน APIเครื่องมือภายในขนาดเล็กหรือต้นแบบช้า ไม่มีข้อจำกัดของข้อมูลจริงจัง และพังเมื่อมีการแก้ไขพร้อมกัน

สำหรับเว็บแอปขนาดเล็กถึงกลางส่วนใหญ่ ฐานข้อมูลเชิงสัมพันธ์อย่าง Postgres เป็นค่าเริ่มต้นที่เหมาะสม เพราะจัดการความสัมพันธ์ได้ดี รักษาความสอดคล้องของข้อมูล และทำให้คุณถามคำถามภายหลังด้วย SQL ได้ ดูภาพรวมแบบเข้าใจง่ายได้ที่ Postgres คืออะไร

อธิบายข้อมูลของคุณก่อนสร้าง

สิ่งที่มีประโยชน์ที่สุดที่คุณทำได้คือเขียนลงไปว่าแอปเก็บ สิ่งต่าง ๆ อะไรบ้าง และ สิ่งเหล่านั้นเชื่อมโยงกันอย่างไร คุณไม่จำเป็นต้องใช้ศัพท์ของฐานข้อมูล ตัวอย่างสำหรับแอปจองคิว:

  • ลูกค้า: ชื่อ อีเมล เบอร์โทร
  • บริการ: ชื่อ ระยะเวลา ราคา
  • การจอง: ลูกค้าคนไหน บริการอะไร เวลาเริ่ม สถานะ (รอดำเนินการ ยืนยันแล้ว ยกเลิก)

นั่นคือสามตาราง "ลูกค้าคนไหน" และ "บริการอะไร" จะกลายเป็นการเชื่อมโยง (foreign key) ระหว่างตาราง การทำให้ถูกตั้งแต่ต้นสำคัญกว่าการเลือกเทคโนโลยีมาก เพราะการเปลี่ยนโครงสร้างของข้อมูลที่มีแถวจริงอยู่แล้วยากกว่าการเปลี่ยนเลย์เอาต์ของหน้าเว็บ

กฎง่าย ๆ บางข้อที่ควรยึด:

  • หนึ่งตารางต่อข้อมูลหนึ่งประเภท อย่ายัดคำสั่งซื้อลงในคอลัมน์ข้อความของลูกค้า
  • ให้ทุกแถวมี ID และเวลาที่สร้าง คุณจะต้องใช้ทั้งสองอย่างในภายหลัง
  • ใช้ชนิดข้อมูลที่ถูกต้อง เก็บวันที่เป็นวันที่ เก็บเงินเป็นหน่วยย่อยที่เป็นจำนวนเต็ม (เช่น สตางค์) หรือชนิดทศนิยม ไม่เก็บเป็นข้อความ
  • ระบุฟิลด์ที่จำเป็นให้ชัดเจน ให้ฐานข้อมูลปฏิเสธข้อมูลที่ไม่ถูกต้อง ไม่ใช่แค่ฟอร์ม

ตัวอย่างพรอมต์

เริ่มจากฟีเจอร์เดียวในแต่ละครั้ง แทนที่จะโยนสคีมาทั้งหมดลงไป:

เพิ่มฐานข้อมูลให้แอปนี้ สร้างตาราง bookings ที่มีชื่อลูกค้า อีเมล บริการ เวลาเริ่ม และสถานะ (pending, confirmed, cancelled; ค่าเริ่มต้นคือ pending) บันทึกข้อมูลจากฟอร์มการจองลงตารางนี้ แสดงข้อความสำเร็จ และเพิ่มหน้าแอดมินที่แสดงรายการการจองเรียงจากใหม่ไปเก่า

แล้วขยายต่อ:

เพิ่มตาราง services (ชื่อ ระยะเวลาเป็นนาที ราคาเป็นสตางค์) เปลี่ยนฟิลด์บริการแบบข้อความอิสระในตาราง bookings ให้เป็นการเชื่อมโยงกับ services และย้ายการจองที่มีอยู่โดยไม่ลบข้อมูล

และทำให้เข้มงวดขึ้น:

ตรวจสอบให้แน่ใจว่าการอ่านและเขียนฐานข้อมูลทั้งหมดเกิดขึ้นที่เซิร์ฟเวอร์ เบราว์เซอร์ต้องไม่ได้รับสตริงการเชื่อมต่อฐานข้อมูลเด็ดขาด ตรวจสอบอีเมลและเวลาเริ่มที่เซิร์ฟเวอร์ก่อนบันทึก

ขั้นตอนทีละขั้น

  1. แสดงรายการข้อมูลของคุณ ตามที่อธิบายข้างต้น: สิ่งต่าง ๆ ฟิลด์ และการเชื่อมโยงระหว่างกัน
  2. สร้างฐานข้อมูล ในเครื่องมือสร้างแอป AI ให้ขอในแชต ที่อื่นให้สร้าง Postgres แบบจัดการแล้วคัดลอกสตริงการเชื่อมต่อ
  3. เก็บสตริงการเชื่อมต่อเป็นความลับ (ตัวแปรสภาพแวดล้อมฝั่งเซิร์ฟเวอร์) อย่าใส่ในโค้ด ดู ตัวแปรสภาพแวดล้อมและความลับ
  4. สร้างตาราง ใช้ migration ซึ่งเป็นสคริปต์ที่มีเวอร์ชันสำหรับเปลี่ยนสคีมา เพื่อให้การเปลี่ยนแปลงทำซ้ำได้และย้อนกลับได้
  5. สร้างเส้นทางของเซิร์ฟเวอร์ ที่สร้าง อ่าน แก้ไข และลบแถว (CRUD) เบราว์เซอร์เรียกเส้นทางเหล่านี้ และไม่เคยคุยกับฐานข้อมูลโดยตรง
  6. เชื่อม UI เข้ากับเส้นทางเหล่านั้น ทั้งฟอร์มที่บันทึกข้อมูล รายการที่โหลดข้อมูล และสถานะว่างเมื่อยังไม่มีข้อมูล
  7. ทดสอบการคงอยู่ของข้อมูล ส่งข้อมูลบางอย่าง รีโหลดหน้า แล้วเปิดในเบราว์เซอร์อีกตัว ถ้าข้อมูลไม่อยู่ แสดงว่ายังไม่ได้บันทึกลงฐานข้อมูล
  8. ตรวจสอบสิทธิ์การเข้าถึง ล็อกอินด้วยผู้ใช้คนที่สองและยืนยันว่าดูหรือแก้ไขข้อมูลของผู้ใช้คนแรกไม่ได้
  9. เผยแพร่ แล้วทดสอบอีกครั้ง บน URL จริง เพราะแอปที่เผยแพร่แล้วอาจใช้การเชื่อมต่อคนละตัวกับตัวอย่างที่ใช้ระหว่างพัฒนา

ข้อผิดพลาดที่พบบ่อย

  • บันทึกลงเบราว์เซอร์แล้วคิดว่าบันทึกลงฐานข้อมูลแล้ว localStorage ดูเหมือนทำงานได้จนกว่าจะมีคนเปิดแอปบนอุปกรณ์อื่น ควรทดสอบในเบราว์เซอร์ตัวที่สองเสมอ
  • ใส่สตริงการเชื่อมต่อในโค้ดฝั่งหน้าบ้าน ใครก็อ่านโค้ดฝั่งหน้าบ้านได้ ซึ่งจะให้สิทธิ์เข้าถึงฐานข้อมูลทั้งหมดแก่เขา
  • ไม่มีการตรวจสอบสิทธิ์ "แสดงคำสั่งซื้อของฉัน" ต้องกรองตามผู้ใช้ที่ล็อกอินอยู่ที่เซิร์ฟเวอร์ ไม่ใช่ในหน้า UI นี่คือช่องโหว่ด้านความปลอดภัยที่พบบ่อยที่สุดในแอปที่สร้างด้วย AI ดู เช็กลิสต์ความปลอดภัยสำหรับแอปที่สร้างด้วย AI ที่ครอบคลุมเรื่องนี้
  • การเปลี่ยนสคีมาแบบทำลายข้อมูล การขอให้ "เปลี่ยนชื่อตาราง" หรือ "เปลี่ยนโครงสร้าง" อาจทำให้ตารางถูกลบแล้วสร้างใหม่ เมื่อมีข้อมูลจริงอยู่ ให้บอกว่า "ย้ายแถวที่มีอยู่ ห้ามลบข้อมูลใด ๆ"
  • เก็บไฟล์ไว้ในฐานข้อมูล รูปภาพและ PDF ควรอยู่ในพื้นที่เก็บไฟล์ และเก็บเฉพาะ URL หรือคีย์ของไฟล์ไว้ในตาราง ดู วิธีเพิ่มการอัปโหลดไฟล์ให้แอปของคุณ
  • ไม่มีการสำรองข้อมูล ก่อนมีลูกค้า ให้รู้ว่าแพลตฟอร์มของคุณสำรองข้อมูลอย่างไร และจะกู้คืนได้อย่างไร

เช็กลิสต์

  • ข้อมูลแต่ละประเภทมีตารางของตัวเองพร้อม ID และเวลาที่สร้าง
  • ฐานข้อมูลบังคับใช้ฟิลด์ที่จำเป็นและชนิดข้อมูล
  • สตริงการเชื่อมต่ออยู่ในความลับฝั่งเซิร์ฟเวอร์เท่านั้น
  • การอ่านและเขียนทั้งหมดผ่านเส้นทางของเซิร์ฟเวอร์
  • ผู้ใช้แต่ละคนอ่านและแก้ไขได้เฉพาะแถวของตัวเอง
  • ข้อมูลยังอยู่หลังรีโหลด และแสดงในเบราว์เซอร์อีกตัว
  • การเปลี่ยนสคีมาใช้ migration และรักษาแถวที่มีอยู่
  • คุณรู้วิธีการสำรองและกู้คืนข้อมูล
  • ทดสอบแอปจริงหลังจากเผยแพร่แล้ว

การเพิ่มฐานข้อมูลใน Mythex

ใน Mythex แต่ละโปรเจกต์สามารถมี ฐานข้อมูล Postgres เฉพาะ ของตัวเองได้ ทั้งในแพ็กเกจ Free และ Pro โดยปกติคุณไม่ต้องกดปุ่ม "แนบ" แยกต่างหาก เพียงขอในแชต (เช่น "บันทึกอีเมลรายชื่อรอในฐานข้อมูล") หรือพิมพ์ /database ระบบจะใส่ข้อมูลการเชื่อมต่อให้พื้นที่ทำงานและแอปที่เผยแพร่แล้ว การตั้งค่าโปรเจกต์จะแสดงว่าฐานข้อมูลเปิดใช้งานอยู่หรือไม่

ฐานข้อมูลจะเข้าสู่โหมดพักเมื่อไม่มีการใช้งาน 5 นาที และจะตื่นเมื่อมีคำขอถัดไป การใช้งานหลังเผยแพร่จะคิดตามเวลาที่ฐานข้อมูลทำงานจริง โดยหักจากยอดเครดิตเดียวกับที่ใช้สร้างแอป หากคุณเพิ่มฐานข้อมูลหลังจากเผยแพร่แล้ว ให้เผยแพร่อีกครั้งเพื่อให้แอปที่ใช้งานอยู่รับการเปลี่ยนแปลงนี้

ดู Database และสูตร Build a CRUD app ในเอกสาร สำหรับด้านการล็อกอินของข้อมูลรายผู้ใช้ ให้อ่าน วิธีเพิ่มระบบล็อกอินให้แอปของคุณ

คำถาม

แอปของฉันจำเป็นต้องมีฐานข้อมูลไหม?

จำเป็นทันทีที่แอปต้องจดจำบางอย่างระหว่างการเข้าชมแต่ละครั้ง หรือต้องแชร์ข้อมูลระหว่างผู้ใช้ เช่น การสมัครสมาชิก คำสั่งซื้อ การจอง โพสต์ หรือการตั้งค่า เว็บไซต์แบบสแตติกที่แสดงเนื้อหาเดิมให้ทุกคนเห็นไม่จำเป็นต้องมีฐานข้อมูล

ควรใช้ฐานข้อมูลอะไรสำหรับเว็บแอปขนาดเล็ก?

ฐานข้อมูลเชิงสัมพันธ์อย่าง Postgres เป็นตัวเลือกเริ่มต้นที่ปลอดภัยสำหรับเว็บแอปขนาดเล็กส่วนใหญ่ รองรับผู้ใช้ คำสั่งซื้อ ความสัมพันธ์ระหว่างข้อมูล และการทำรายงานได้ดี มีผู้ให้บริการรองรับจำนวนมาก และในระดับขนาดเล็กแทบไม่ต้องกังวลว่าจะเกินความสามารถ

เก็บข้อมูลในเบราว์เซอร์แทนฐานข้อมูลได้ไหม?

พื้นที่เก็บข้อมูลของเบราว์เซอร์ เช่น localStorage ใช้ได้เฉพาะในอุปกรณ์และเบราว์เซอร์นั้น และผู้ใช้จะล้างเมื่อไรก็ได้ เหมาะกับการตั้งค่าเล็ก ๆ เช่น การเลือกธีม แต่ไม่เหมาะกับข้อมูลที่คุณหรือผู้ใช้คนอื่นต้องเห็นในภายหลัง

Mythex มีฐานข้อมูลให้ไหม?

มี โปรเจกต์ใน Mythex ได้รับฐานข้อมูล Postgres เฉพาะของตัวเองในแพ็กเกจ Free และ Pro คุณขอได้ในแชตหรือใช้คำสั่ง /database ระบบจะใส่ข้อมูลการเชื่อมต่อให้โดยอัตโนมัติ การใช้งานจะหักจากยอดเครดิตเดียวกับที่ใช้สร้างแอป

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