เครื่องมือฟรีสำหรับแปลง SQL → ER Diagram ทำงานในเบราว์เซอร์และไม่อัปโหลดอะไรเลย
(sqltoerdiagram.com)- วาง SQL schema แล้วระบบจะแสดงผลตาราง คอลัมน์ คีย์ และความสัมพันธ์เป็น ERD ได้ทันทีภายในเบราว์เซอร์
- รองรับการพาร์ส
CREATE TABLEและALTER TABLEDDL ของ PostgreSQL, MySQL, SQLite และ SQL Server พร้อมจัดการ primary key, foreign key รวมถึงข้อกำหนด unique และ not-null - รองรับ การแก้ไขแบบอินเทอร์แอ็กทีฟ เช่น ลากตาราง, จัดวางอัตโนมัติ, เพิ่มโน้ต, ซูมเข้า-ออก, ดับเบิลคลิกเพื่อเปลี่ยนชื่อ
- ส่งออกผลลัพธ์ได้เป็น PNG ความละเอียดสูง, SVG แบบเวกเตอร์, ไฟล์โปรเจกต์ และ ลิงก์แชร์ ที่เข้ารหัสไดอะแกรมไว้ใน URL
- ไม่ต้องมีบัญชี, ไม่ต้องสมัคร, ไม่ต้องติดตั้ง และเน้นการทำงานแบบ local เพราะ SQL schema จะไม่ถูกอัปโหลดหรือบันทึกไว้บนเซิร์ฟเวอร์
วาง SQL แล้วดู schema
- ใส่คำสั่ง
CREATE TABLEลงในตัวแก้ไขด้านซ้าย แล้ว SQL schema จะแสดงเป็น ER diagram - schema ตัวอย่างเป็นโครงสร้างอีคอมเมิร์ซขนาดเล็ก ประกอบด้วย 6 ตาราง และ 7 ความสัมพันธ์ ของ users, addresses, products, orders, order_items, reviews
- สามารถลากตารางได้, ซูมเข้า-ออกด้วยการเลื่อนเมาส์, ดับเบิลคลิกเพื่อเปลี่ยนชื่อ และส่งออกได้หลังจัดเสร็จ
- มีฟังก์ชันโหลด schema ตัวอย่าง และบนหน้าจอแสดงอัตราการซูม 122%
- การประมวลผลทั้งหมดทำงานแบบ local 100% ในเบราว์เซอร์ และ schema จะไม่ออกไปนอกเบราว์เซอร์
SQL to ER Diagram — เครื่องมือสร้าง ERD ออนไลน์ฟรี
- SQL to ER Diagram เป็นเครื่องมือโอเพนซอร์สฟรีที่แปลง SQL schema เป็น ERD แบบอินเทอร์แอ็กทีฟ ภายในเบราว์เซอร์
- วางคำสั่ง
CREATE TABLEแล้วระบบจะแสดงผลตาราง คอลัมน์ primary key, foreign key และความสัมพันธ์ได้ทันที - ใช้งานได้กับ PostgreSQL, MySQL, SQLite และ SQL Server
- รองรับการลากตาราง, การจัดเลย์เอาต์อัตโนมัติ, การเพิ่มโน้ต และการส่งออกเป็น PNG หรือ SVG
- ไม่มีการอัปโหลดอะไร และ schema จะคงอยู่บนอุปกรณ์ของผู้ใช้
คำถามที่พบบ่อย
- หากต้องการสร้าง ER diagram จาก SQL ให้วางคำสั่ง SQL
CREATE TABLEลงในตัวแก้ไข แล้วเครื่องมือจะเรนเดอร์ ERD แบบอินเทอร์แอ็กทีฟทันที- สามารถลากตารางเพื่อจัดวาง แล้วส่งออกเป็น PNG หรือ SVG ได้
- SQL dialect ที่รองรับคือ PostgreSQL, MySQL, SQLite และ SQL Server และสามารถพาร์ส
CREATE TABLEกับALTER TABLEDDL มาตรฐานได้- รองรับ primary key, foreign key, unique และข้อกำหนด not-null
- SQL to ER Diagram ฟรีทั้งหมดและเป็นโอเพนซอร์ส โดยไม่ต้องมีบัญชีหรือสมัครใช้งาน
- ทุกอย่างทำงานแบบ local ในเบราว์เซอร์ และ SQL schema จะไม่ถูกอัปโหลดหรือบันทึกไว้บนเซิร์ฟเวอร์
- สามารถส่งออกไดอะแกรมเป็น PNG ความละเอียดสูง, SVG แบบเวกเตอร์, ไฟล์โปรเจกต์เต็มรูปแบบ และลิงก์แชร์ที่เข้ารหัสไดอะแกรมไว้ใน URL
- ไม่ต้องติดตั้ง และทำงานได้ในเว็บเบราว์เซอร์ทั้งเดสก์ท็อปและมือถือ
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
นึกถึงเครื่องมือที่เคยทำร่วมกับ v0 เมื่อไม่กี่เดือนก่อน https://v0-yaerd.vercel.app
ผมสร้างมันขึ้นมาเพราะไม่เคยเห็นเครื่องมือที่สามารถแปลความ ไฟล์ migration ของ Laravel แล้วสร้าง ERD ได้ และหลังจากนั้นก็เพิ่ม การรองรับ SQL เบื้องต้นผ่านพรอมป์ต์ด้วย
เครื่องมือนี้เจ๋งมาก แต่ผมคิดว่าแค่ SQL อย่างเดียวสร้าง ER diagram ไม่ได้
เอนทิตี กับ ตาราง นั้นต่างกันโดยพื้นฐาน ถึงจะคล้ายกันมาก แต่ SQL อย่างเดียวมีข้อมูลไม่พอสำหรับการสร้าง ER diagram
ไม่ได้หมายความว่าเครื่องมือนี้ไร้ประโยชน์ หรือไดอะแกรมประเภทนี้ไม่ช่วยอะไร แค่เป็นข้อถกเถียงเชิงหลักการ ซึ่งคนอื่นอาจไม่เห็นด้วยก็ได้
แน่นอนว่า DDL ไม่ได้บอกอะไรมากเกี่ยวกับวงจรชีวิตของเอนทิตี แต่ถ้าเกณฑ์คือแค่แสดงความสัมพันธ์ ฟิลด์ และคาร์ดินาลิตีเป็นกราฟ ก็ดูว่าเพียงพอแล้ว
ทุกวันนี้ดูเหมือนจะมีคนสนใจความแตกต่างนี้ไม่มากนัก
ฐานข้อมูลอาจมีอยู่แล้ว แต่ไม่มี ERD และแทบไม่มีเอกสารเลย
เพราะงั้นมันจึงใกล้เคียงกับเครื่องมือสำหรับสำรวจ และในอุดมคติก็ควรสร้างมุมมองและแนบบันทึกได้
เพราะเมื่อมีตารางจำนวนมหาศาล หรือมีหลายตารางที่ไม่มี foreign key คุณก็ไม่จำเป็นต้องดู ERD ทั้งหมดพร้อมกันทีเดียว
ในทางปฏิบัติแทบใช้แทนกันได้ แต่ในเชิงแนวคิดก็ดูเหมือนว่าจะมีชั้นความหมายที่ลึกกว่าวางอยู่บนเอนทิตีและความสัมพันธ์
เช่นคำอธิบายของความสัมพันธ์ หรือหมายเหตุเพิ่มเติมที่แนบกับเอนทิตี
ผมเข้าใจมาตลอดว่าเอนทิตีกับตารางมี ความสัมพันธ์แบบ 1:1 และถ้ามีตัวอย่างก็น่าจะช่วยมาก
การใช้งานบนมือถือ ให้ 1000 เต็ม 100 เลย
การแพน ซูม เลือก และย้าย ลื่นไหลมากจนผมนึกว่าตัวเองคิดไปเอง
ผมชอบนักพัฒนาที่กลั่นปัญหาซับซ้อนให้กลายเป็นคำตอบที่เรียบง่าย และคนนี้เก่งจริง ๆ
นึกคำชมที่สูงไปกว่านี้สำหรับนักพัฒนาไม่ออกแล้ว
ดูแล้วฟังก์ชันไดอะแกรมนี้น่าจะเอาไปใช้กับอย่างอื่นนอกจาก ERD ได้อีกเยอะ
ดับเบิลแท็บเพื่อแก้ไขแล้วระดับการซูมไม่ถูกรีเซ็ต
เป็นหนึ่งในเว็บที่รองรับมือถือได้ดีที่สุดเท่าที่เคยเห็นมาอย่างไม่ต้องสงสัย
ไม่ใช่อะไรใหญ่โต แค่เป็นเครื่องมือเล็ก ๆ แต่คิดว่าน่าจะมีประโยชน์กับคนอื่นด้วย
ผมต้องทำงานที่ต้องทำภาพสคีมาฐานข้อมูลอยู่เรื่อย ๆ และเครื่องมือส่วนใหญ่ก็ติดกำแพงจ่ายเงิน บังคับสมัครสมาชิก หรือไม่ก็ต้องส่ง SQL ไปยังเซิร์ฟเวอร์ของคนอื่น
ไม่มีแบ็กเอนด์, ไม่มีบัญชี และข้อมูลไม่ออกจากอุปกรณ์ของคุณเลย
ส่วนที่สนุกตอนทำก็คือ แทนที่จะใช้ DOM/SVG ผมแรสเตอร์ตารางเป็นบิตแมปที่แคชไว้ และใช้ viewport culling เพื่อให้ยังลื่นแม้มีหลายร้อยตารางบนหน้าจอ
SQL parser จะติดตามช่วงต้นฉบับของทุกโทเค็น ทำให้การแก้ไขอย่างการเปลี่ยนชื่อตารางไปแก้เฉพาะ identifier และ reference ที่เกี่ยวข้องได้อย่างแม่นยำ โดยคงคอมเมนต์และฟอร์แมตเดิมไว้
สคีมาทั้งหมดอยู่ใน URL และการแชร์ก็ทำโดย serialize สคีมาลงใน URL โดยตรง จึงไม่ต้องมีแบ็กเอนด์ สถานะที่จัดเก็บไว้ หรือบัญชีผู้ใช้
ผมเคยลองทำเวอร์ชัน Rust/WASM ด้วย แต่ต้นทุนของขอบเขต JS↔WASM สูงกว่าที่ประหยัดจากการคำนวณได้ ทำให้ parser ช้าลงประมาณ 37% แม้ว่า overlap-resolution pass แบบ O(n^2) จะเร็วขึ้นราว 2.2 เท่าก็ตาม
สุดท้ายเลยคงไว้เป็น JavaScript ล้วน และขนาดราว 32KB แบบ gzip โดยไม่ใช้เฟรมเวิร์ก
ถ้าไม่ได้ระบุไลเซนส์ไว้ ก็อาจเป็นโอเพนซอร์สได้แต่ไม่ใช่ซอฟต์แวร์เสรี
“แนะนำให้ผู้ส่งและผู้รับทั้งหมดรองรับ URI ที่มีความยาวอย่างน้อย 8000 octets ภายในองค์ประกอบของโปรโตคอล”
https://www.rfc-editor.org/rfc/rfc9110#section-4.1-5
ตอบสนองไว เรียบร้อย และ ประสบการณ์ onboarding แบบไม่ต้องสมัครใช้งานนั้นยอดเยี่ยม
ความแยกระหว่าง “เอนทิตี vs ตาราง” มีอยู่จริง แต่สำหรับนักพัฒนาส่วนใหญ่ที่แค่อยากเห็นภาพสคีมาที่มีอยู่เดิมอย่างรวดเร็ว แค่นี้ก็เพียงพอแล้ว
ที่นี่ ความสมบูรณ์แบบคือศัตรูของความมีประโยชน์
คนส่วนใหญ่ไม่ได้พยายามสร้าง abstraction แบบ ORM แค่อยากเห็นว่าอะไรเชื่อมกับอะไรเท่านั้น
นึกถึง https://explain.dalibo.com/
เป็นเครื่องมือสำหรับแสดงภาพ query execution plan และเป็นหนึ่งในเครื่องมือที่มีประโยชน์ที่สุดที่ผมเคยใช้ในการปรับแต่ง SQL query
ถ้าจะใช้กับข้อมูลอ่อนไหว ก็ควรดาวน์โหลดเวอร์ชัน v2 แบบออฟไลน์เต็มรูปแบบที่อยู่ด้านล่าง
ถ้ามีตัวเลือกเส้นตรงกับ เส้นหักมุม 90 องศา ด้วยก็น่าจะดี
ผมไม่เคยชอบเส้นโค้งเท่าไร แต่หน้าตาดูดีและทำออกมาได้เยี่ยม
สงสัยว่ามีวิธีสร้าง SVG พวกนี้ผ่าน CLI ไหม
ผมชอบมันมาก และส่วนขยาย Postgres ของ VSCode ที่ทำอะไรคล้ายกันก็ดี แต่ถูกผูกไว้กับ VSCode
และก็ยังไม่มีตัวเลือก CLI ที่ส่งออกได้เพื่อนำไปเก็บไว้ในรีโพซิทอรีเหมือนกัน
ผมใช้ https://github.com/ondras/wwwsqldesigner อยู่ และคิดว่าน่าจะเอามาใช้เป็นตัวเทียบได้
ผมชอบโปรเจกต์นั้นมาก และมันก็เป็นหนึ่งใน implementation ของ server-side JS ยุคแรก ๆ
ไม่แน่ใจว่าผมอาจเป็นผู้ติดตามอยู่คนเดียว แต่ Ondřej ผลงานของคุณยอดเยี่ยมจริง ๆ
ใช้ได้เลย แต่บน GitHub ไม่มี ไฟล์ LICENSE: https://github.com/royalbhati/sqltoerdiagram