Asslamualaikum wr.wb
Halo semuanya, seperti yang kita ketahui dalam pengerjaan suatu project, desain database merupakan salah satu pilar penting, karena database memuat data-data yang mempengaruhi project. Pada kesempatan kali ini saya akan share bagaimana mendesain database menggunakan dbdiagram sehingga memudahkan kita dalam mendesain database, biasanya jika temen-temen membuat desain langsung dari phpmyadmin atau dari terminal, kalian tidak dapat melihat hubungan relasi antar table, namun jika kalian menggunakan dbdiagram kalian akan mendapatkan visualisasi desain database.
Pertama-tama kita buka website dbdiagram.io, lalu kita akan mendapatkan tampilan awal dbdiagram seperti dibawah ini
Jika sudah muncul tampilan diatas, silahkan tekan tombol create your diagram, maka kita akan diarahkan ke diagram kita, secara default kita akan diberikan skema users, countries, order_items, orders, products, merchants, merchant_periods. Skema ini dapat dilihat gambar dibawah ini.
Untuk menyimpan database kalian harus sign in terlebih dahulu, kalian bisa sign in melalui google ataupun github. Jika kalian sudah login, kalian bisa mengganti nama diagram juga.
Sekarang, kita akan belajar sintax sintax yang digunakan dalam mendesain dbdiagram.
Project Definition
kita akan mendefinisikan project kita, disini kita akan menentukan tipe database, contohnya mysql, postgreSQL, dkk. Untuk syntaxnya seperti dibawah ini
Project project_name {
database_type: 'PostgreSQL'
Note: 'Description of the project'
}
Table Definition
kita juga dapat mendefinisikan table mulai dari nama tabel, kemudian kolom-kolom apa saja.
Table table_name {
column_name column_type [column_settings]
}
table_name diganti nama table yang ingin dibuat
column_name diganti nama kolom seperti id, name dll
column_name diganti tipe kolom misalnya int, string, char dll
Table Alias
kita juga dapat membuat alias untuk nama tabel, biasanya digunakan untuk merefrensikan foreign key. Syntax alias dapat dilihat dibawah ini
Table very_long_user_table as U {
...
}
Ref: U.id < posts.user_id
Table Notes
Kita juga dapat menambahkan notes, syntax dapat dilihat dibawah ini
Table users {
id integer
status varchar [note: 'status']
Note: 'Stores user data'
}
Table Settings
kita juga dapat menambahkan configurasi tambahan misalnya mengubah warna tabel, syntax dapat dilihat dibawah ini
headercolor: <color_code>
Column Definition
Kita dapat mendefinisikan kolom syntaxnya sudah dibahas diatas namun untuk contoh dapat dilihat dibawah ini
Table buildings {
...
address varchar(255) [unique, not null, note: 'to include unit number']
id integer [ pk, unique, default: 123, note: 'Number' ]
}
Default Value
kita juga dapat memberikan default value dari kolom tertentu, contoh sytax dapat dilihat dibawah ini
Table users {
id integer [primary key]
username varchar(255) [not null, unique]
full_name varchar(255) [not null]
gender varchar(1) [default: 'm']
created_at timestamp [default: `now()`]
rating integer [default: 10]
}
Relation dan Foreign Key
kita dapat menambahkan relasi antar tabel dengan menambahkan kolom foreign key, sytaxnya dapat dilihat dibawah ini
Table posts {
id integer [primary key]
user_id integer [ref: > users.id] // many-to-one
}
// or this
Table users {
id integer [ref: < posts.user_id, ref: < reviews.user_id] // one to many
}
// The space after '<' is optional
Terdapat 3 jenis relasi yaitu, one-to-one, one-to-many, many-to-one
<
: one-to-many. Contoh:users.id < posts.user_id
>
: many-to-one. Contoh:posts.user_id > users.id
-
: one-to-one. Contoh:users.id - user_infos.user_id
Komentar
kita juga dapat menambahkan komentar, komentar ini tidak akan dikompile sehingga dapat kita gunakan sebagai dokumentasi dkk.
// ini komentar
Export DB
Setelah kita selesai mendesain database, kita dapat mengeksport ke dalam bentuk format pdf, png, mysql, postgresql, sql server. Kita dapat mengeksport dengan cara menekan tombol export dan pilih format.
Import Database
kita juga dapat mengimport database jika kita sudah memiliki skema desain database. Kita dapat mengimport database dengan menekan tombol import dan memilih format yang sesuai dengan database kita.
Oke, mungkin sekian dulu dari saya, sebenarnya kalian juga dapat meilihat didokumentasi resmi dbdiagram, sekian dan terimakasih :)