Panduan Sintaks ERD Mermaid.js

Apa itu Diagram Hubungan Entitas (ERD)?

Sebuah Diagram Hubungan Entitas (ERD) adalah gambaran struktural yang digunakan untuk merancang, mendokumentasikan, dan menganalisis skema basis data relasional. Ini menggambarkan tabel data khusus (entitas) dalam suatu aplikasi, kolom (atribut) yang terdapat di dalam tabel-tabel tersebut, serta aturan integritas referensial yang menghubungkan mereka. Ditulis menggunakan standar notasi Teknik Informasi (IE), yang menerapkan notasi kaki burung kepala untuk menunjukkan keterbatasan data dan ketergantungan multi-tabel.

Dengan Mermaid.js, Anda dapat mendefinisikan indeks tabel produksi, tipe data, dan koneksi kunci asing menggunakan blok teks yang bersih dan deklaratif. Mesin secara otomatis menangani ukuran untuk kontainer tata letak multi-kolom dan mengarahkan garis koneksi tanpa membiarkan label teks tumpang tindih.

Panduan Sintaks Inti: Elemen dan Konstruksi

Membangun skema basis data yang valid dan sepenuhnya dapat dijalankan di Mermaid bergantung pada blok entitas struktural, pemetaan tipe data, tag indeks, dan operator kardinalitas.

1. Deklarasi Entitas dan Kolom Tabel

Anda menginisialisasi kanvas ERD pada baris pertama menggunakan kata kunci erDiagram kata kunci. Untuk mendefinisikan sebuah tabel, tulis nama entitas diikuti oleh kurung kurawal buka, daftarkan konfigurasi kolom Anda secara berurutan pada baris-baris terpisah:

erDiagram
    USERS {
        int id
        string email
        timestamp created_at
    }

2. Menandai Kunci Utama, Kunci Asing, dan Komentar

Mesin ERD Mermaid memungkinkan Anda menetapkan tag indeks struktural langsung setelah definisi nama kolom dan tipe data. Anda juga dapat menambahkan komentar teks opsional ke kolom dengan membungkusnya dalam tanda kutip ganda:

  • PK — Secara eksplisit menandai kolom sebagai Kunci Utama tabel.
  • FK — Menandai kolom sebagai Kunci Asing yang terhubung ke tabel induk.
erDiagram
    ORDERS {
        int id PK
        int user_id FK "Menghubungkan ke USERS.id"
        string kode_kupon
    }

3. Menguasai Modifikasi Kardinalitas Crow’s Foot

Untuk menghubungkan tabel dan menerapkan aturan integritas referensial, petakan hubungan mereka menggunakan operator garis khusus. Kepala karakter membentuk bentuk visual seperti kaki burung gagak yang menentukan batasan kelipatan data:

  • ||--|| **Tepat Satu ke Tepat Satu:** Pemetaan 1:1 yang ketat dan wajib.
  • ||--o| **Tepat Satu ke Nol atau Satu:** Ketergantungan 1:1 yang opsional.
  • ||--|{ **Tepat Satu ke Satu atau Banyak:** Keterhubungan orang tua 1:N yang wajib.
  • ||--o{ **Tepat Satu ke Nol, Satu, atau Banyak:** Hubungan 1:N standar yang opsional.

Praktik Terbaik untuk Skema Data Relasional

  • Jaga Konsistensi Penulisan Huruf Tabel: Pertahankan nama entitas yang dapat diprediksi. Gunakan string huruf besar (misalnya, USER_ACCOUNTS) atau snake_case huruf kecil ketat (misalnya, user_accounts) untuk sesuai dengan kode infrastruktur SQL dunia nyata Anda.
  • Selalu Sertakan Tipe Data: Hindari menyatakan teks kolom mentah tanpa tipe. Secara eksplisit daftarkan definisi seperti int, varchar, atau boolean memastikan diagram arsitektur Anda berfungsi sebagai referensi teknis yang akurat.
  • Jaga Label Hubungan sebagai Kata Kerja: Saat menghubungkan elemen, berikan string kata kerja aktif singkat dan huruf kecil di dalam penugasan hubungan Anda (misalnya, ||--o{ : "berisi") untuk mendokumentasikan pemetaan logika bisnis.

Contoh ERD Mermaid.js Dunia Nyata

Contoh 1: Model Transaksional E-Commerce Inti (Kunci & Pemetaan)

Rancangan fungsional ini memodelkan putaran transaksi basis data e-commerce inti, menunjukkan bagaimana pengguna, pesanan, dan sistem pelacakan pembayaran terhubung satu sama lain menggunakan batasan kaki burung yang ketat.

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 : "menempatkan"
    ORDERS ||--|| TRANSACTION_LEDGERS : "menghasilkan" 

Analisis Sintaks: Skema ini memetakan batas transaksi secara bersih. Aturan pemetaan menentukan bahwa seorang pelanggan dapat menempatkan nol atau banyak pesanan seiring waktu (||--o{), sementara catatan pesanan individu harus menghasilkan tepat satu entri buku jurnal transaksi yang sesuai (||--||).

Contoh 2: Skema Sistem Manajemen Konten Perusahaan (Interseksi Banyak-ke-Banyak)

Rancangan basis data lanjutan ini memetakan arsitektur platform manajemen konten. Ini menjelaskan cara menyelesaikan konfigurasi banyak-ke-banyak yang kompleks dengan memperkenalkan entitas pemetaan jembatan yang eksplisit.

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 : "berisi"
    CATEGORIES ||--o{ POST_CATEGORY_MAPPINGS : "mengklasifikasikan"
    POSTS ||--o{ COMMENTS : "melampirkan" 

Analisis Sintaks: Untuk menangani hubungan banyak-ke-banyak antara `POSTS` dan `CATEGORIES`, skrip ini memperkenalkan tabel interseksi (`POST_CATEGORY_MAPPINGS`). Kotak pemetaan ini menggunakan kunci komposit yang berfungsi secara bersamaan sebagai kunci utama dan kunci asing (PK FK), menghubungkan node luar bersama-sama menggunakan koneksi kaki burung satu-ke-banyak standar.

Scroll to Top