เราจะมาพูดถึง Text to SQL กัน ซึ่ง Text to SQL ก็คือการที่เราแปลงภาษาของมนุษย์ เรานี้แหละ ให้คอมพิวเตอร์ได้เข้าใจ ถ้าลองนึกภาพให้เข้าใจง่ายก็เหมือนคุณกำลังคุยกับเจ้าเหมียว แต่เจ้าเหมียวไม่เข้าใจคุณเลย ตัว Text to SQL จะช่วยให้คุณสามารถคุยกับเจ้าหมียวได้อย่างเข้าใจ
ซึ่ง Text to SQL จะช่วยให้ นักพัฒนาสามารถสื่อสารกับฐานข้อมูลได้นั้นเอง ยกตัวเช่น เราถามคำสั่งง่ายๆ เช่น เขียน SQL ในรูปแบบ PostgresSQL โดยหาค่าความสูงเฉลี่ยของนักเรียน
ขั้นตอนแรก เราจะมาเข้าใจ ของตัวงานหรือโปรเจ็คกัน ซึ่งในโปรเจคนี้จะประกอบไปด้วย requirement หลักสำคัญดังต่อไปนี้
Design the frontend architecture
ในครั้งนี้เราจะเลือกในงรอบนี้ที่เราเลือกในที่นี่เราเลือกframeworkเป็น NextJS
โดย Lib ต่างที่เราเลือกมี ดังต่อไปนี้
เราก็จะมาเริ่ม Implement ในส่วนของ Frontend กัน ซึ่งในการสรา้ง Project เราก็สั่งด้วยคำสั่ง
เมื่อเรา create เสร็จเเล้ว ก็จะสั้ง
จากนั้นเรามาเริ่ม ทำการ Implement กัน เราก็จะเริ่มจากการขึ้น UI ก่อนเลย หลังจากเราขึ้น ตัว UI ของเราได้ครบเเล้ว เราก็จะมาจัดการตัว Form ของเรา ด้วย zod เราจะมี schema
และ จัดการตัว react-hook-form ข้อดีของ react hook form นี้ช่วยในเรื่องของ performance การลดrender ของ DOM ได้ เมื่อเทียบกับการที่เราใช้ useState ในการทำ Input เลยทีเดียว
เมื่อเรา Implement เสร็จเเล้ว ก็จะได้หน้าตาของ UI ในแบบนี้
ในส่วนนี้เราจะมาเชื่อมต่อกับส่วนของ Backend กัน ซึ่ง lib ที่เราจะใช้หลักๆ คือ axios กับ @tanstack/react-query
ซึ่งในการต่อ API เราจะมีการดึง data มาลองตัวคือ colunm กับ data
และในส่วนของการ chat และการ random data ให้กับ ตาราง
จากนั้น เราจะนำ data ที่เราได้ ไปเชื่อมกับ UI และจัด state ต่างๆ ไม่ว่าการ loading หรือ errors
ในขั้นตอนนี้เราก็จะมา test กันว่า เป็นไปตามผลที่เราคาดหวังหรือต้องการรึเปล่า ทั้งในด้านของ function ทำตามต้องการไหม หรือ ด้าน UI ถูกต้องไหม ไหนลองเเชทดูสิ
พอเราทำการลองเล่น สิ่งที่หนึงที่เห็นคือ ตัว block ขยับ เลยปรับแก้เพื่อความเรียบร้อย ตามอันนี้ก็เป็นการ Test manual เเต่ว่า เราสามารถทำให้ดีกว่านี้ โดยการเขียน Unit test ก็ได้นะ 😆
ในขั้นตอนนี้เราก็จะมาทำการ deploy กัน ซึ่งในส่วน เราก็จะจัดการ config หรือ env ต่างๆ ให้เรียบร้อยก่อนการ deploy เช่น env สำหรับการเชื่อม API ซึ่งในโปรเจ็คนี้เรามีอยู่ นั้นเอง
.env
NEXT_PUBLIC_API = your endpoint
ทิ้งท้ายบทความสำหรับ Text2SQL