SQL sang ERD — Trực quan hóa lược đồ CREATE TABLE thành sơ đồ thực thể quan hệ
SQL sang ERD
Dán một hoặc nhiều câu lệnh CREATE TABLE và công cụ này vẽ lược đồ: mỗi bảng thành một thực thể, các cột thành thuộc tính được gắn PK / FK, và các ràng buộc FOREIGN KEY thành đường quan hệ. Khi lược đồ không khai báo khóa ngoại nào, các cột như customer_id được đề xuất làm quan hệ suy ra mà bạn có thể giữ hoặc bỏ. Sao chép mã nguồn Mermaid erDiagram hoặc xuất sơ đồ dạng SVG / PNG. Mọi thứ chạy cục bộ — không lược đồ nào rời khỏi trình duyệt của bạn.
ERD là gì? ERD là viết tắt của Entity Relationship Diagram (Sơ đồ thực thể quan hệ) — một hình ảnh về cách một cơ sở dữ liệu được tổ chức. Nó được vẽ từ ba loại hình: thực thể (các bảng, vẽ thành hộp), thuộc tính (các cột liệt kê bên trong hộp) và quan hệ (các đường nối hai hộp). Kỹ thuật này đến từ mô hình thực thể quan hệ của Peter Chen năm 1976 và vẫn là cách thường dùng để phác thảo lược đồ trước khi viết bất kỳ DDL nào: một ERD tốt cho thấy ngay có những bảng nào, mỗi hàng lưu gì, và một hàng ở bảng này trỏ đến một hàng ở bảng khác ra sao — người không muốn đọc SQL vẫn đọc được.
Entity — one thing the system keeps data about, such as a customer, an order or a product. In a relational database each entity becomes one table.
Attribute — one fact recorded for every row of an entity, such as a name, a price or a date. Each attribute becomes one column.
Relationship — an association between two entities, implemented by a foreign key: the child table stores the parent’s key, and the diagram turns that column into a line.
PK / FK — a primary key (PK) identifies each row of a table uniquely; a foreign key (FK) holds the primary key of another table and is what a relationship line represents.
Bản số — mỗi đầu của đường được phép có bao nhiêu hàng: một-một, một-nhiều hay nhiều-nhiều. Trang này vẽ ký hiệu chân chim mà Mermaid dùng (xem chú giải ở bước 4).
Các ký hiệu: ký hiệu Chen dùng hình thoi cho quan hệ và hình elip cho thuộc tính; ký hiệu chân chim (cái được vẽ ở đây) nén một thực thể thành một hộp đơn với các thuộc tính liệt kê bên trong và đánh dấu đầu nhiều của đường bằng "chân chim" ba ngạnh; biểu đồ lớp UML mô tả cùng cấu trúc bằng lớp, phương thức và bội số. Cả ba đều nói cùng điều về lược đồ — chỉ khác ký hiệu.
1 — Lược đồ bảng (DDL)
2 — Thực thể
Vẽ
Bảng
Các cột
Quan hệ
Thuộc tính
Chưa phân tích bảng nào.
3 — Quan hệ
Dùng
Con (nhiều)
Actions
Cha (một)
Nguồn
Actions
Chưa có quan hệ nào.
Thêm một quan hệ bằng tay:
→
4 — Sơ đồ
Mã nguồn Mermaid erDiagram
Cách đọc quan hệ: khóa ngoại ở bảng con tạo ra PARENT ||--o{ CHILD. Thực thể và thuộc tính giữ tên DDL, với các ký tự mà Mermaid không vẽ được (khoảng trắng, dấu gạch ngang) được hiển thị thành dấu gạch dưới. Kiểu được rút gọn về từ gốc (DECIMAL(10,2) → DECIMAL) vì cú pháp sơ đồ không nhận tham số.
Ký hiệu bản số (chân chim): dấu bên cạnh một thực thể cho biết có bao nhiêu hàng được phép đứng ở đầu đó của đường — || đúng một, o| không hoặc một, o{ không hoặc nhiều, |{ một hoặc nhiều. Vì vậy PARENT ||--o{ CHILD được đọc là "một hàng cha có thể được tham chiếu bởi không, một hoặc nhiều hàng con, và mỗi hàng con trỏ đến đúng một cha" — liên kết một-nhiều kinh điển.
Many-to-many is never a single line: a product can appear in many orders and an order can
hold many products, so the schema stores a join table (order_items) whose two foreign keys
become two one-to-many lines. Read through that middle box and the many-to-many is there.