By Arnon Puitrakul - 05 กรกฎาคม 2015
จาก EP. ที่แล้ว เราก็ได้รู้ว่า กว่าจะมาเป็น Database แบบที่เราใช้อยู่ทุกวันนี้ มันเริ่มมาจากอะไร และมีข้อดีข้อเสียอย่างไร
แต่วันนี้ เราจะไม่ย้อนเวลาแล้ว เราจะมองที่ปัจจุบัน มาดูกันว่า เวลาเราจะวาด ER Diagram ที่เขาวาด ๆ กันได้ยังไง แต่ก่อนหน้านั้น มันคืออะไร ?
ER Diagram เป็น แบบจำลองที่ใช้อธิบายโครงสร้างของฐานข้อมูลที่เราเขียนขึ้นมาในลักษณะของรูปภาพ เพื่ออธิบายความสัมพันธ์ของข้อมูล
การวาด ER Diagram เป็นขั้นตอนที่ค่อนข้างสำคัญมากในการออกแบบฐานข้อมูล นอกจากมันจะช่วย "กันหลง" ได้แล้ว มันยังทำให้ เราออกแบบฐานข้อมูลได้อย่างเป็นระบบ เพื่อป้องกันความผิดพลาดด้วย ถ้าเราทำงานกับฐานข้อมูลที่ใหญ่มาก ๆ ก็ควรที่จะเขียน ER Diagram มากเลย เพราะถ้าฐานข้อมูลใหญ่มาก ๆ ก็อาจทำให้เราเกิดความผิดพลาดในการทำงานได้ (ถ้ามันใหญ่จริง ๆ ใครมันจะไปจำโครงสร้างได้หมดล่ะ เนอะ ?)
สำหรับแผนภาพ ER Diagram เราจะนำเสนอข้อมูลในรูปแบบของแผนภาพได้อย่างชัดเจน โดยจะมี
ถัดมา เราก็ต้องมี Entity อีกตัวเพื่อเก็บข้อมูลของหนังสือพิมพ์ เช่น รหัสหนังสือพิมพ์ ชื่อหนังสือพิมพ์ และ ราคา สามารถเอามาเขียน ER Diagram ได้ตามแบบข้างล่างได้เลย
หลังจากที่เราได้ ทั้ง 2 Entities ไปแล้ว เราก็จะมาดูที่อีก Entity นึง แต่ Entity นี้ออกจะพิเศษไปสักหน่อย เพราะว่า ข้อมูลของมันเกิดจาก ความสัมพันธ์ของ 2 Entities นั่นคือ News Member ซึ่ง Entity นี้จะเก็บข้อมูลว่าสมาชิกของเรานั่น สมัครสมาชิก หนังสือพิมพ์อะไรไปบ้าง ดังนั้น Attribute เราก็ควรจะมี รหัสสมาชิก ที่มาจาก Entity Member และ รหัสของหนังสือพิมพ์ที่สมาชิก ได้สมัครไว้
และเราก็จับทั้งหมดมารวมกัน เราก็จะได้แบบด้านล่างเลย
แต่เราสังเกตจากตัวอย่างเมื่อกี้ ว่าสมาชิก 1 คนสามารถสมัครได้มากกว่า 1 หนังสือพิมพ์ ดังนั้นเรื่องของ ระดับของความสัมพันธ์ หรือ Relationship cardinality จึงถูกพูดขึ้นมา มันเป็นการอธิบายว่า ความสัมพันธ์อันนั้น ๆ มันมีความสัมพันธ์กันอย่างไร โดยเราจะมีอยู่ 3 รูปแบบด้วยกัน นั่นคือ
เรื่องราวเกิดจากการที่เราต้องย้าย Add-on Package ใน DSM และคิดว่าหลาย ๆ คนน่าจะต้องประสบเรื่องราวคล้าย ๆ กัน วันนี้เราจะมาเล่าวิธีการว่า เราทำยังไง เจอปัญหาอะไร และ แก้ปัญหาอย่างไรให้ได้อ่านกัน...
การใช้ Docker CLI ในการจัดการ Container เป็นท่าที่เราใช้งานกันทั่วไป มันมีความยุ่งยาก และผิดพลาดได้ง่ายยังไม่นับว่ามี Instance หลายตัว ทำให้เราต้องค่อย ๆ SSH เข้าไปทำทีละตัว มันจะดีกว่ามั้ย หากเรามี Centralised Container Managment ที่มี Web GUI ให้เราด้วย วันนี้เราจะพาไปทำความรู้จักกับ Portainer กัน...
ปกติหากเราต้องการจะเปิดเว็บสักเว็บ เราจำเป็นต้องมี Web Server ตั้งอยู่ที่ไหนสักที่หนึ่ง ต้องใช้ค่าใช้จ่าย พร้อมกับต้องจัดการเรื่องความปลอดภัยอีก วันนี้เราจะมาแนะนำวิธีการที่ง่ายแสนง่าย ปลอดภัย และฟรี กับ Cloudflare Tunnel ให้อ่านกัน...
เวลาเราทำงานกับข้อมูลอย่าง Pandas DataFrame หนึ่งในงานที่เราเขียนลงไปให้มันทำคือ การ Apply Function เข้าไป ถ้าข้อมูลมีขนาดเล็ก มันไม่มีปัญหาเท่าไหร่ แต่ถ้าข้อมูลของเราใหญ่ มันอีกเรื่องเลย ถ้าเราจะเขียนให้เร็วที่สุด เราจะทำได้โดยวิธีใดบ้าง วันนี้เรามาดูกัน...