dbdiagram เครื่องมือฟรีสร้าง ER Diagram

dbdiagram เครื่องมือฟรีสร้าง ER Diagram

ใครกำลังมองหาวิธีการสร้าง 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 ได้เลย

หน้าตา interface ของ dbdiagram
User Interface – dbdiagram

ด้านล่างของหน้าจอจะมี 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

create a users table using dbml

ลองสร้างตาราง countries อีกหนึ่งตาราง แล้วเดี๋ยวเรามาประกาศความสัมพันธ์ของ users-countriesใน section ต่อไป

// create a countries table
Table countries {
  country_id int [PK]
  country_name varchar [unique, not null]
}
ตาราง countries

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

dbml many to one relationship example
ตัวอย่างความสัมพันธ์แบบ one to many

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)

ตัวอย่างไฟล์ SQL ที่ export จาก dbml
Export ออกมาเป็น PostgreSQL

หรือจะแชร์เป็น 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 ด้วยนะครับ เย้ 👏