ใครกำลังมองหาวิธีการสร้าง ER Diagram ง่ายๆดีๆ แถมฟรี บทความนี้มีคำตอบ
วันนี้แอดจะมาแชร์เครื่องมือฟรีชื่อ dbdiagram.io ไว้สร้าง ER Diagram (Entity-Relationship Diagram) สำหรับ relational databases ลองใช้แล้ว คือดีมาก เย้!
ข้อดีของ dbdiagram
- ใช้งานง่ายผ่าน web browser
- รองรับภาษา DBML (database markup langauge)
- ใช้งานฟรี free account สร้างได้สูงสุด 10 diagrams
- สามารถ export ออกมาเป็นไฟล์ PNG, PDF หรือแปลงเป็น script .SQL ได้ด้วย 😆
ส่วนข้อเสีย ไม่มี! สุดยอด 555+ มาลองดูตัวอย่างการเขียน dbml ได้ในบทความนี้ครับ
Table of Contents (คลิกอ่านหัวข้อที่ต้องการ)
Interface
วิธีการใช้งานไปที่เว็บไซต์ dbdiagram.io สมัคร free account แล้วก็เริ่มสร้าง ERD ได้เลย

ด้านล่างของหน้าจอจะมี slider ไว้ zoom diagram ของเรา มีปุ่ม Focus (ทำ auto-zoom) Auto-arrange เรียง tables ให้สวยงาม และ Highlights เพื่อไฮไลท์ keys ในตาราง
DBML
dbml คือ domain specific language (DSL) สำหรับการสร้าง ER diagrams
Syntax เข้าใจง่ายมากๆ ไม่ต่างจากการเขียน CREATE TABLE ของ SQL เท่าไหร่ data types พื้นฐานที่ dbml สนับสนุนมี int, float, varchar, datetime
เราใช้ keyword Table เพื่อสร้างตาราง และเขียน table definition ใน { } เราสามารถเขียน constraints เช่น primary key, unique, not null, default ได้ใน [ ]
// create our first table
Table users {
id int [PK]
nickname varchar [not null]
dob datetime [unique]
height float
weight float
country_id int
}
dbml ที่เราเขียนจะ render table [users] ขึ้นมาใน canvas

ลองสร้างตาราง countries อีกหนึ่งตาราง แล้วเดี๋ยวเรามาประกาศความสัมพันธ์ของ users-countriesใน section ต่อไป
// create a countries table
Table countries {
country_id int [PK]
country_name varchar [unique, not null]
}

Relationships
dbml รองรับการเขียนความสัมพันธ์ 4 แบบ (อ่านเพิ่มเติมที่ dbml relationships)
-
: one-to-one<
: one-to-many>
: many-to-one<>
: many-to-many
หลังจากเราประกาศ Tables เสร็จแล้ว เราสามารถเขียน relationships ด้วย Ref keyword ตัวอย่างด้านล่างคือการเขียนแบบ long form (ตั้งชื่อ relationship ได้ด้วย)
// one-to-many relationship
Ref a_relationship {
countries.country_id < users.country_id
}
dbml จะ render ตารางและความสัมพันธ์แบบ one-to-many ใน canvas

Comment
dbml ใช้ //
หรือ /* .. */
เพื่อเขียน comment แบบ single, multi-lines ตามลำดับ
// single line comment
/*
multiple lines comment
*/
Export
ถ้าเราได้ ER Diagram ที่ต้องการแล้ว สามารถกดที่ปุ่ม Export ด้านบน UI เพื่อ export diagram ได้ 5 แบบ คือไฟล์ PDF, PNG, SQL script สำหรับ PostgreSQL, MySQL, SQL Server ตามลำดับ (dbml จะแปลง syntax ที่เราเขียนเป็น SQL DDL statements)

หรือจะแชร์เป็น public link (dbml) แบบนี้ก็ได้ครับ ทำไมมันง่ายอย่างนี้ 😝
dbml ยังทำอะไรได้อีกเยอะมาก เช่น การสร้าง schema และ index การใช้งาน dbml CLI สำหรับเพื่อนๆที่อยากศึกษาเพิ่มเติม อ่านวิธีการเขียน markdown เต็มๆได้ที่ DBML docs
PRO Plan
ถ้าใครอยากใช้งาน dbdiagram แบบ full-featured สร้าง ERDs ได้ไม่จำกัด ตั้ง password หรือทำพวก customization ต่างๆ real-time collaboration ทำงานร่วมกันหลายๆคน มี version history ต้องอัพเกรดเป็น pro plan เดือนละ $9 USD
บทความต่อไป เดี๋ยวแอดมาอธิบายการเขียน dbml แบบเต็มๆให้อ่านกันอีกที ถ้าใครชอบบทความนี้ อย่าลืมกด like กด share ให้ DataRockie ด้วยนะครับ เย้ 👏