บทที่ 3 ⏱ 18 นาที

ข้อมูลหลายชนิด — จัดระเบียบให้ถูก

ตอนนี้แอปของคุณจำค่าใช้จ่ายได้แล้ว รีเฟรชแล้วข้อมูลยังอยู่

พอถึงจุดนี้ หลายคนจะเริ่มอยากเก็บข้อมูลเพิ่มอีกชนิดหนึ่ง เช่น หมวดหมู่ของค่าใช้จ่าย ไม่ใช่แค่ชื่อ จำนวนเงิน และวันที่อย่างเดียว


ข้อมูลใหม่บางอย่าง ไม่ได้เป็นแค่ช่องเพิ่มในตารางเดิม

ถ้าคุณอยากเพิ่ม “โน้ตสั้นๆ” ให้ค่าใช้จ่ายหนึ่งรายการ นั่นมักยังเป็นแค่ช่องใหม่ในตารางเดิม

แต่ถ้าคุณอยากเก็บ “หมวดหมู่” ที่มีหลายตัวเลือก เช่น อาหาร เดินทาง ช้อปปิ้ง บันเทิง อื่นๆ สิ่งนี้เริ่มเป็นข้อมูลอีกชนิดหนึ่งแล้ว ไม่ใช่แค่รายละเอียดเพิ่มของรายการเดิม

วิธีคิดที่ง่ายที่สุดคือถามตัวเองว่า:

สิ่งนี้เป็นแค่ข้อมูลเพิ่มของของเดิม หรือมันเป็น "ของ" อีกประเภทหนึ่ง?

ถ้าเป็น “ของ” อีกประเภทหนึ่ง มันมักควรมีที่อยู่ของมันเอง


คิดแบบ spreadsheet: คนละชนิดข้อมูล ก็ควรอยู่คนละ sheet

ลองนึกถึง spreadsheet ที่มีทุกอย่างยัดอยู่ใน sheet เดียว

ถ้าคุณเก็บทั้งรายการค่าใช้จ่ายและรายการหมวดหมู่ปนกันในที่เดียว ไม่นานมันจะเริ่มงง เพราะบางแถวคือค่าใช้จ่าย บางแถวคือชื่อหมวดหมู่ แล้วคุณจะไม่รู้ว่าอะไรเป็นอะไรแน่

วิธีที่เป็นระเบียบกว่าคือแยกเป็น 2 sheet

  • sheet หนึ่งเก็บค่าใช้จ่าย
  • อีก sheet หนึ่งเก็บหมวดหมู่

จากนั้นให้ค่าใช้จ่ายแต่ละรายการบอกว่า ตัวเองอยู่หมวดหมู่อะไร

นี่คือแนวคิดสำคัญของบทนี้ทั้งหมด

💡 ไม่ต้องกลัวคำศัพท์

คุณยังไม่ต้องรู้คำเทคนิคอะไรเพิ่ม แค่เข้าใจว่าข้อมูลคนละประเภทควรแยกเก็บคนละที่ แล้วทำให้มันรู้จักกัน เท่านี้พอแล้ว


แอปติดตามค่าใช้จ่ายของเราตอนนี้ต้องมีข้อมูล 2 ชนิด

ชนิดแรกคือค่าใช้จ่ายแต่ละรายการ ซึ่งเรามีอยู่แล้วจากบทที่แล้ว

หนึ่งรายการค่าใช้จ่ายยังมีเหมือนเดิม:

  • ชื่อรายการ
  • จำนวนเงิน
  • วันที่

ชนิดที่สองคือหมวดหมู่ เช่น:

  • อาหาร
  • เดินทาง
  • ช้อปปิ้ง
  • บันเทิง
  • อื่นๆ

พอมองแบบนี้ คุณจะเห็นชัดเลยว่า “หมวดหมู่” ไม่ได้เป็นแค่คำอธิบายลอยๆ แต่มันเป็นข้อมูลอีกชุดหนึ่งที่แอปควรรู้จัก


Prompt ที่จะส่งในบทนี้

เราจะบอก AI ให้สร้างระบบหมวดหมู่แยกออกมา แล้วให้แต่ละค่าใช้จ่ายเลือกหมวดหมู่ได้

ใช้ prompt นี้ได้เลย:

เพิ่มระบบหมวดหมู่ให้แอปค่าใช้จ่าย

สร้างรายการหมวดหมู่ใน database โดยมีหมวดหมู่เริ่มต้น:
- อาหาร
- เดินทาง
- ช้อปปิ้ง
- บันเทิง
- อื่นๆ

เมื่อเพิ่มรายการค่าใช้จ่าย ให้เลือกหมวดหมู่ได้
แสดงหมวดหมู่ในรายการค่าใช้จ่ายแต่ละรายการ
ให้ทุกอย่างเก็บใน Supabase database
ไม่เปลี่ยน design หรือฟังก์ชันอื่นที่มีอยู่แล้ว

สิ่งที่ prompt นี้ทำมีอยู่ 3 อย่าง:

  1. บอกให้มีข้อมูลอีกชนิดหนึ่ง คือหมวดหมู่
  2. บอกว่าเวลาสร้างค่าใช้จ่ายใหม่ ต้องเลือกหมวดหมู่ได้
  3. บอกว่าทั้งหมดนี้ต้องเก็บใน database เหมือนกัน

ลงมือทำ — เพิ่มหมวดหมู่ แล้วดูว่าข้อมูลสองชุดเริ่มทำงานร่วมกัน

  1. เปิดโปรเจกต์ expense tracker ของคุณใน Lovable
  2. คัดลอก prompt ด้านบนไปวางในแชท
  3. ส่งให้ AI ทำงาน
  4. รอให้แอปอัปเดตเสร็จ

หลังจากนั้น ลองเปิดฟอร์มเพิ่มค่าใช้จ่ายอีกครั้ง

คุณควรเห็นว่ามีจุดหนึ่งเพิ่มเข้ามา คือการเลือกหมวดหมู่ให้กับค่าใช้จ่ายแต่ละรายการ

ตอนนี้แอปเริ่มรู้จักข้อมูลมากกว่าหนึ่งแบบแล้ว

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


ทดสอบแบบนี้ เพื่อให้รู้ว่ามันเก็บครบจริง

ขั้นตอนที่ 1 — เพิ่มข้อมูลหลายแบบ

ลองเพิ่มค่าใช้จ่ายอย่างน้อย 3 รายการ โดยใช้หมวดหมู่ต่างกัน เช่น:

  • ค่ากาแฟ → อาหาร
  • ค่า BTS → เดินทาง
  • ค่าหนัง → บันเทิง

ขั้นตอนที่ 2 — ดูบนหน้าจอ

เช็กว่ารายการแต่ละอันแสดงหมวดหมู่ของตัวเองถูกต้อง

อย่าดูแค่ว่ามี dropdown แล้วถือว่าจบ จุดสำคัญคือหลังบันทึกแล้ว แอปยังรู้ว่ารายการนี้อยู่หมวดไหน

ขั้นตอนที่ 3 — รีเฟรชแล้วเช็กอีกครั้ง

  1. รีเฟรชหน้าแอป
  2. รอให้แอปโหลดกลับมา
  3. เช็กว่ารายการทั้งหมดยังอยู่
  4. เช็กว่าหมวดหมู่ของแต่ละรายการยังถูกต้องเหมือนเดิม

ถ้าทุกอย่างยังอยู่ครบ แปลว่าตอนนี้แอปไม่ได้จำแค่ข้อมูลชนิดเดียวแล้ว แต่มันเริ่มจำ “ความสัมพันธ์” ของข้อมูลได้ด้วย

💡 อย่ารีบผ่านขั้นรีเฟรช

ทุกครั้งที่เพิ่มความสามารถเรื่องข้อมูล ให้รีเฟรชแล้วดูใหม่เสมอ เพราะนี่คือวิธีที่ชัดที่สุดว่ามันถูกเก็บจริง ไม่ได้แค่โผล่บนหน้าจอชั่วคราว


ถ้ายังไม่ขึ้นครบ ลองคิดแบบ spreadsheet ก่อน

ถ้าคุณเห็นว่ามีหมวดหมู่ตอนกรอก แต่หลังบันทึกแล้วแสดงไม่ครบ หรือรีเฟรชแล้วบางอย่างหาย ลองกลับมาคิดง่ายๆ แบบ spreadsheet

ถามตัวเองว่า:

  • ตอนนี้แอปมี sheet สำหรับค่าใช้จ่ายหรือยัง
  • มี sheet สำหรับหมวดหมู่หรือยัง
  • เวลาเพิ่มค่าใช้จ่าย แอปได้บันทึกไว้ไหมว่ารายการนี้เลือกหมวดอะไร

ถ้ายังไม่ชัด ลองส่ง prompt เดิมอีกครั้ง โดยย้ำให้ชัดว่าเวลาบันทึกค่าใช้จ่าย ต้องเก็บหมวดหมู่ของรายการนั้นด้วย

⚠️ อย่าเพิ่มหลายระบบพร้อมกัน

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


สำหรับแอปของคุณเอง

ให้ลองถามตัวเองว่า แอปของคุณมีข้อมูลกี่ประเภทจริงๆ

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

วิธีคิดยังเหมือนเดิม: ข้อมูลคนละประเภท อยู่คนละที่ แล้วทำให้มันรู้จักกัน


คุณเพิ่งทำอะไรสำเร็จไปแล้วบ้าง

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

บทต่อไป เราจะทำให้แอปใช้งานกับข้อมูลจริงได้มากขึ้นอีกขั้น เพราะแค่เพิ่มและดูอย่างเดียวไม่พอ คนต้องแก้ ลบ และหาข้อมูลที่ต้องการได้ด้วย

🎉
ยินดีด้วย! คุณทำสำเร็จแล้ว

แอปของคุณเก็บข้อมูลสองประเภทที่เชื่อมถึงกันแล้ว — ค่าใช้จ่ายแต่ละรายการรู้ว่าอยู่หมวดอะไร 🎉