Hướng dẫn cú pháp ERD của Mermaid.js

Điểm quan hệ thực thể (ERD) là gì?

Một Sơ đồ quan hệ thực thể (ERD) là bản vẽ cấu trúc được sử dụng để thiết kế, tài liệu hóa và phân tích các lược đồ cơ sở dữ liệu quan hệ. Nó mô tả các bảng dữ liệu cụ thể (thực thể) trong một ứng dụng, các cột (thuộc tính) được nhúng bên trong các bảng đó, và các quy tắc toàn vẹn tham chiếu kết nối chúng lại với nhau. Được viết bằng ký hiệu tiêu chuẩn ký hiệu Kỹ thuật Thông tin (IE), nó triển khai rõ ràng ký hiệu chân chim các đầu để thể hiện các ràng buộc dữ liệu và các phụ thuộc giữa nhiều bảng.

Với Mermaid.js, bạn có thể định nghĩa chỉ mục bảng sản xuất, kiểu dữ liệu và các kết nối khóa ngoại bằng một khối văn bản rõ ràng, khai báo. Bộ xử lý tự động xử lý kích thước cho các container bố cục nhiều cột và định tuyến các đường nối mà không để nhãn văn bản chồng lấn lên nhau.

Hướng dẫn cú pháp cốt lõi: Các thành phần và cấu trúc

Xây dựng một lược đồ cơ sở dữ liệu hợp lệ, hoàn toàn có thể chạy được trong Mermaid phụ thuộc vào các khối thực thể cấu trúc, ánh xạ kiểu dữ liệu, nhãn chỉ mục và toán tử cấp độ.

1. Khai báo các thực thể và cột bảng

Bạn khởi tạo bảng ERD ở dòng đầu tiên bằng cách sử dụng từ khóa erDiagram từ khóa. Để định nghĩa một bảng, hãy viết tên thực thể theo sau là dấu ngoặc nhọn mở, liệt kê các cấu hình cột của bạn theo thứ tự trên từng dòng riêng biệt:

2. Đánh dấu khóa chính, khóa ngoại và chú thích

Động cơ ERD của Mermaid cho phép bạn gán các thẻ chỉ mục cấu trúc ngay sau tên cột và định nghĩa kiểu dữ liệu. Bạn cũng có thể thêm một chú thích văn bản tùy chọn cho một cột bằng cách bao quanh nó bằng dấu ngoặc kép:

  • PK — Đánh dấu rõ ràng một cột là Khóa chính của bảng.
  • FK — Đánh dấu một cột là Khóa ngoại liên kết với một bảng cha.
erDiagram
    ORDERS {
        int id PK
        int user_id FK "Liên kết đến USERS.id"
        string coupon_code
    }

3. Thành thạo các bộ định danh tính chất kiểu chân chim

Để kết nối các bảng và thực thi các quy tắc toàn vẹn tham chiếu, hãy ánh xạ các mối quan hệ của chúng bằng các toán tử đường đặc biệt. Các đầu ký tự tạo thành hình dạng hình chim chóc trực quan, xác định các ràng buộc bội số dữ liệu:

  • ||--|| **Chính xác một đến chính xác một:** Một ánh xạ 1:1 nghiêm ngặt, bắt buộc.
  • ||--o| **Chính xác một đến không hoặc một:** Một mối quan hệ 1:1 tùy chọn.
  • ||--|{ **Chính xác một đến một hoặc nhiều:** Một liên kết cha con 1:N bắt buộc.
  • ||--o{ **Chính xác một đến không, một hoặc nhiều:** Một mối quan hệ 1:N tiêu chuẩn, tùy chọn.

Các thực hành tốt nhất cho các lược đồ dữ liệu quan hệ

  • Duy trì cách viết hoa thường xuyên cho các bảng: Giữ tên thực thể dễ dự đoán. Sử dụng chuỗi viết hoa toàn bộ (ví dụ như USER_ACCOUNTS) hoặc snake_case viết thường nghiêm ngặt (ví dụ như user_accounts) để phù hợp với mã cơ sở hạ tầng SQL thực tế của bạn.
  • Luôn luôn bao gồm kiểu dữ liệu: Tránh khai báo văn bản cột thô mà không có kiểu. Liệt kê rõ ràng các định nghĩa như int, varchar, hoặc boolean đảm bảo các biểu đồ kiến trúc của bạn hoạt động như một tài liệu tham khảo kỹ thuật chính xác.
  • Giữ nhãn mối quan hệ dưới dạng động từ: Khi liên kết các thành phần, hãy cung cấp một chuỗi động từ ngắn gọn, viết thường bên trong gán mối quan hệ của bạn (ví dụ, ||--o{ : "chứa") để ghi chú bản đồ logic kinh doanh.

Ví dụ biểu đồ ERD Mermaid.js trong thế giới thực

Ví dụ 1: Mô hình giao dịch cốt lõi thương mại điện tử (Khóa & Bản đồ)

Bản thiết kế chức năng này mô phỏng vòng lặp giao dịch cơ sở dữ liệu thương mại điện tử cốt lõi, cho thấy cách người dùng, đơn hàng và hệ thống theo dõi thanh toán được liên kết với nhau bằng các ràng buộc kiểu chân chim nghiêm ngặt.

erDiagram
    CUSTOMERS {
        int id PK
        string email
        string password_hash
    }

    ORDERS {
        int id PK
        int customer_id FK
        decimal total_amount
        string status
    }

    TRANSACTION_LEDGERS {
        int id PK
        int order_id FK
        string reference_token
        string gateway
    }

    CUSTOMERS ||--o{ ORDERS : "đặt"
    ORDERS ||--|| TRANSACTION_LEDGERS : "tạo ra" 

Phân tích cú pháp: Bản thiết kế này ánh xạ rõ ràng các ranh giới giao dịch. Các quy tắc ánh xạ quy định rằng một khách hàng có thể đặt từ 0 đến nhiều đơn hàng theo thời gian (||--o{), trong khi mỗi bản ghi đơn hàng phải tạo ra đúng một mục ghi sổ giao dịch tương ứng (||--||).

Ví dụ 2: Bản thiết kế Hệ thống quản lý nội dung doanh nghiệp (Giao điểm nhiều-đa)

Bản thiết kế cơ sở dữ liệu nâng cao này mô tả kiến trúc nền tảng quản lý nội dung. Nó chi tiết cách giải quyết các cấu hình nhiều-đa phức tạp bằng cách giới thiệu một thực thể ánh xạ cầu nối rõ ràng.

erDiagram
    POSTS {
        int id PK
        string title
        string slug
        text body_content
    }

    CATEGORIES {
        int id PK
        string name
        string description
    }

    POST_CATEGORY_MAPPINGS {
        int post_id PK, FK
        int category_id PK, FK
        timestamp assigned_at
    }

    COMMENTS {
        int id PK
        int post_id FK
        string author_name
        text comment_body
    }

    POSTS ||--o{ POST_CATEGORY_MAPPINGS : "chứa"
    CATEGORIES ||--o{ POST_CATEGORY_MAPPINGS : "phân loại"
    POSTS ||--o{ COMMENTS : "đính kèm" 

Phân tích cú pháp: Để xử lý mối quan hệ nhiều-đa giữa `POSTS` và `CATEGORIES`, đoạn mã giới thiệu một bảng giao điểm (`POST_CATEGORY_MAPPINGS`). Hộp ánh xạ này sử dụng khóa hợp thành vừa đóng vai trò khóa chính vừa khóa ngoại (PK FK), kết nối các nút bên ngoài với nhau bằng các kết nối kiểu chân chim một-đa tiêu chuẩn.

Lên đầu trang