DBML Editor

DBML Editor terdiri dari editor dan kanvas. Editor ditulis dalam syntax DBML dan representasi visual dalam bentuk tabel dan relasi akan muncul pada kanvas. Tabel pada kanvas dapat digeser dan diubah lebarnya. Kanvas dapat diperbesar atau diperkecil (skala) dengan salah satu dari berikut:

  • pinch zoom in/out pada Trackpad
  • Ctrl + Scroll (mouse) non-Mac
  • Cmd + Scroll pada Mac

DBML

DBML (Database Markup Language) adalah bahasa DSL open source yang dirancang untuk mendefinisikan dan mendokumentasikan skema dan struktur basis data. DBML dirancang agar sederhana, konsisten, dan mudah dibaca. Penjelasan lebih lanjut mengenai DBML dapat dilihat disini https://dbml.dbdiagram.io/home

Representasi Tabel

Sebuah tabel pada kanvas merepresentasikan sebuah model tabel dari kode DBML. Daftar kolom/field dari tabel ditampilkan dalam bentuk nama dan jenis di bawah nama tabel. Primary Key ditampilkan dalam bentuk tulisan yang lebih terang dan tebal (bold). Kolom yang berelasi dengan tabel lain (foreign key) ditampilkan dalam bentuk tulisan yang lebih terang dan memiliki awalan garis di sebelahnya.

Nama tabel dan setiap baris kolom/field tabel memiliki event double click yang akan membuka editor dan fokus pada tabel atau kolom yang di-double click.

Relasi Tabel

Relasi antar tabel digambarkan dengan garis dari kolom asal (foreign key) ke kolom tujuan (primary key).

Jenis Data yang Didukung

Dalam konteks dokumentasi, pengguna dapat menuliskan jenis data apapun pada kolom tabel. Namun, dukungan jenis data ini wajib diikuti jika pengguna menggunakan library keluaran Pagonila. Berikut daftar jenis data yang didukung oleh Pagonila saat ini:

Jenis DataJavascriptSQL
intnumberInteger
int4numberInteger
numericnumberSQL Numeric tanpa scale & precision
integernumberInteger
bigintnumberBig Integer
floatnumberDouble Precision Floating Point
decimalnumberSQL Numeric tanpa scale & precision
varcharstringCharacter varying
varchar(n)stringvarchar dengan ukuran, misal: varchar(255)
stringstringsama seperti varchar
textstringCharacter string
boolbooleanBoolean
booleanbooleanBoolean
timestampDateTanggal dalam bentuk timestamp
timestamptzDatetimestamp dengan zona waktu
jsonbObjectObjek JSON
Outline