1. จัดเก็บข้อมูลด้วย PostgreSQL
Supabase ใช้ PostgreSQL ซึ่งเป็นฐานข้อมูลเชิงสัมพันธ์ที่ได้รับความนิยมและใช้งานจริงในระบบขนาดใหญ่ทั่วโลก
เราสามารถสร้างตารางเพื่อจัดเก็บข้อมูลต่าง ๆ เช่น
- ข้อมูลผู้ใช้งาน
- รายรับและรายจ่าย
- หมวดหมู่ค่าใช้จ่าย
- รายการสินค้า
- คำสั่งซื้อ
- บทความและความคิดเห็น
นอกจากนี้ เรายังสามารถกำหนดความสัมพันธ์ระหว่างตารางได้ เช่น ผู้ใช้งานหนึ่งคนมีรายการรายจ่ายได้หลายรายการ
2. ระบบสมัครสมาชิกและเข้าสู่ระบบ
Supabase มีระบบ Authentication สำหรับจัดการสมาชิกมาให้พร้อมใช้งาน เช่น
ทำให้เราไม่จำเป็นต้องสร้างระบบสมาชิกใหม่ตั้งแต่ต้น และช่วยลดความซับซ้อนในการพัฒนาแอป
3. สร้าง API จากฐานข้อมูลให้อัตโนมัติ
เมื่อเราสร้างตารางใน Supabase ระบบจะสร้าง API สำหรับเพิ่ม อ่าน แก้ไข และลบข้อมูลให้โดยอัตโนมัติ
ตัวอย่างเช่น เมื่อเรามีตาราง transactions สำหรับเก็บรายการรายรับ–รายจ่าย หน้าเว็บไซต์ก็สามารถเชื่อมต่อกับ Supabase เพื่อบันทึกและเรียกดูข้อมูลได้ทันที
จุดนี้ช่วยลดเวลาในการเขียน Backend ลงได้มาก โดยเฉพาะในช่วงเริ่มต้นพัฒนาโปรเจกต์
4. จัดเก็บไฟล์และรูปภาพ
Supabase Storage ใช้สำหรับจัดเก็บไฟล์ต่าง ๆ เช่น
รูปโปรไฟล์
รูปสินค้า
เอกสาร PDF
รูปสลิปการโอนเงิน
ไฟล์ที่ผู้ใช้งานอัปโหลด
เรายังสามารถกำหนดได้ว่าไฟล์ใดเปิดให้ทุกคนเข้าถึงได้ และไฟล์ใดอนุญาตให้เฉพาะเจ้าของไฟล์เท่านั้นที่เปิดดูได้
5. อัปเดตข้อมูลแบบเรียลไทม์
Supabase รองรับ Realtime ทำให้หน้าแอปสามารถรับข้อมูลใหม่ได้โดยไม่ต้องกดรีเฟรชหน้า
ฟีเจอร์นี้สามารถนำไปใช้สร้างระบบต่าง ๆ เช่น
ห้องแชต
ระบบแจ้งเตือน
Dashboard ที่อัปเดตข้อมูลอัตโนมัติ
ระบบติดตามสถานะคำสั่งซื้อ
ระบบแสดงข้อมูลที่มีการเปลี่ยนแปลงตลอดเวลา
6. ควบคุมสิทธิ์ด้วย Row Level Security
ถึงแม้ Supabase จะอนุญาตให้ Front-end เชื่อมต่อกับฐานข้อมูลได้ แต่ไม่ได้หมายความว่าผู้ใช้งานทุกคนควรเข้าถึงข้อมูลทั้งหมดได้
Supabase มีระบบ Row Level Security หรือ RLS สำหรับกำหนดเงื่อนไขการเข้าถึงข้อมูลในแต่ละแถว
ตัวอย่างเช่น ในแอปรายรับ–รายจ่าย เราสามารถกำหนดให้ผู้ใช้งานมองเห็น แก้ไข และลบได้เฉพาะรายการของตัวเองเท่านั้น
ดังนั้น การเปิดใช้งานและกำหนด Policy ของ RLS อย่างถูกต้องจึงเป็นเรื่องสำคัญมาก ไม่ควรเชื่อมต่อฐานข้อมูลแล้วปล่อยตารางให้เข้าถึงได้โดยไม่มีการควบคุม