ในโลกของการพัฒนาซอฟต์แวร์ที่ระบบฐานข้อมูลมีความซับซ้อนมากขึ้นเรื่อย ๆ การออกแบบโครงสร้างตารางและความสัมพันธ์ระหว่างเอนทิตีจึงเป็นขั้นตอนที่สำคัญที่สุดและมักจะเต็มไปด้วยความท้าทายในการสื่อสาร หากเราต้องใช้เครื่องมือแบบกราฟิก (GUI) ในการสร้างแผนภาพอย่างเดียว อาจทำให้เกิดปัญหาเมื่อมีการแก้ไขหรือต้องการควบคุมเวอร์ชัน เพราะมันกลายเป็นไฟล์รูปภาพที่ยากต่อการจัดการในระบบ Version Control อย่าง Git
เจาะลึกรายละเอียดและประเด็นสำคัญ
การใช้ Mermaid.js เข้ามาช่วยในการสร้าง Entity Relationship (ER) Diagram ถือเป็นการเปลี่ยนกระบวนทัศน์จากการวาดภาพด้วยมือไปสู่การเขียนโค้ดเพื่อกำหนดโครงสร้างแผนภาพ (Diagram as Code) ซึ่งหมายความว่าเราสามารถนิยามตาราง, คอลัมน์, และที่สำคัญที่สุดคือ Primary Key (PK) และ Foreign Key (FK) ด้วยไวยากรณ์ข้อความธรรมดา (Markdown/Text Syntax) ทำให้เอกสารของเรามีความเป็นโค้ด สามารถถูกตรวจสอบ (Diff) และควบคุมเวอร์ชันได้เหมือนกับ Source Code อื่น ๆ
หัวใจสำคัญของเทคนิคนี้คือการที่ Mermaid.js ช่วยให้เราสามารถกำหนดความสัมพันธ์แบบหนึ่งต่อกลุ่ม (One-to-Many) หรือหลายต่อหลาย (Many-to-Many) ได้อย่างชัดเจนผ่านการระบุคีย์หลักและคีย์นอก การทำเช่นนี้ไม่เพียงแต่ช่วยลดข้อผิดพลาดในการออกแบบเท่านั้น แต่ยังทำให้เอกสารฐานข้อมูลของเรากลายเป็นส่วนหนึ่งของ “Source of Truth” ที่นักพัฒนาทุกคนสามารถเข้าถึงและเข้าใจได้ง่าย
erDiagram
CUSTOMER {
int customer_id PK
varchar name
date join_date
}
ORDER {
int order_id PK
datetime order_date
int customer_id FK
decimal total_amount
}
PRODUCT {
int product_id PK
varchar name
decimal price
}
CUSTOMER ||–o{ ORDER : places
ORDER ||–o{ PRODUCT : contains