Saat mengembangkan proyek perangkat lunak, salah satu aspek yang paling penting, mendasar, dan intrinsik adalah skema database yang terstruktur dengan baik. Ini sama dengan ketika membangun rumah Anda perlu memastikan fondasinya diletakkan dengan benar, jika tidak, kemungkinan membangun rumah yang berkualitas berkurang secara drastis.

Ternyata lebih mudah daripada yang dipikirkan orang, mari pelajari berbagai aspek yang digunakan untuk menulis skema database yang dirancang dengan baik.

CREATE TABLE Syntax

Untuk memulai, buka favorit Anda editor teks. Membuat skema database tidak lebih dari file teks biasa. Database terdiri dari beberapa tabel, masing-masing terdiri dari kolom, dan sintaks CREATE TABLE digunakan untuk membuat satu tabel. Inilah contoh dasarnya:


BUAT pengguna TABEL (
id INT TIDAK NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR (100) BUKAN NULL,
email VARCHAR (100) BUKAN NULL
);

Seperti yang Anda lihat, ini akan membuat tabel database bernama pengguna yang terdiri dari empat kolom. Ini harus menjadi pernyataan SQL yang cukup lurus ke depan yang dimulai dengan

instagram viewer
BUAT TABEL, diikuti dengan nama tabel database, lalu di dalam tanda kurung kolom tabel dipisahkan dengan koma.

Gunakan Jenis Kolom yang Benar

Seperti yang ditunjukkan di atas, kolom yang terdiri dari tabel dipisahkan dengan koma. Setiap definisi kolom terdiri dari tiga bagian yang sama:

JENIS COL_NAME [OPTIONS]

Nama kolom, diikuti dengan jenis kolom, lalu parameter opsional apa pun. Kita akan membahas parameter opsional nanti, tetapi berkonsentrasi pada jenis kolom, di bawah ini daftar jenis kolom yang paling umum digunakan yang tersedia:

Untuk semua maksud, jenis kolom di atas adalah semua yang Anda butuhkan untuk menulis skema database mySQL yang dibangun dengan baik.

Tentukan Opsi Kolom

Saat menentukan kolom, ada juga berbagai opsi yang dapat Anda tentukan. Di bawah ini adalah contoh lain dari BUAT TABEL pernyataan:


BUAT pengguna TABEL (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR (100) NOT NULL UNIQUE,
status ENUM ('aktif', 'tidak aktif') NOT NULL DEFAULT 'aktif',
saldo DECIMAL (8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
Created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Hal di atas mungkin terlihat sedikit menakutkan, tetapi jangan khawatir, ini cukup sederhana. Rusak, inilah yang terjadi dalam pernyataan di atas:

  • Anda harus selalu menggunakan NOT NULL pada semua kolom yang memungkinkan untuk membantu kecepatan dan performa tabel. Ini hanya menentukan kolom tidak boleh dibiarkan kosong / null saat baris dimasukkan.
  • Usahakan selalu untuk menjaga ukuran kolom sekecil mungkin secara realistis, karena ini membantu meningkatkan kecepatan dan kinerja.
  • Itu Indo kolom adalah bilangan bulat, juga kunci utama tabel yang berarti unik, dan akan bertambah satu setiap kali rekaman dimasukkan. Ini umumnya harus digunakan pada semua tabel yang Anda buat sehingga Anda dapat dengan mudah mereferensikan baris mana pun di dalam tabel.
  • Itu status kolom adalah ENUM dan harus memiliki nilai "aktif" atau "tidak aktif". Jika tidak ada nilai yang ditentukan, baris baru akan dimulai dengan status "aktif".
  • Itu keseimbangan kolom dimulai dari 0 untuk setiap baris baru, dan merupakan jumlah yang diformat dua koma desimal.
  • Itu tanggal lahir kolom hanyalah sebuah TANGGAL tetapi juga memungkinkan untuk nilai nol karena tanggal lahir mungkin tidak diketahui pada saat pembuatan.
  • Terakhir, dibuat di kolom adalah TIMESTAMP dan default untuk waktu saat ini ketika baris telah disisipkan.

Di atas adalah contoh tabel database yang terstruktur dengan baik, dan harus digunakan sebagai contoh di masa mendatang.

Salah satu keuntungan terbesar menggunakan database relasional seperti mySQL adalah dukungan yang sangat baik untuk kendala kunci asing dan penurunan. Ini adalah saat Anda menautkan dua tabel bersama-sama dengan kolom, membentuk hubungan induk anak, jadi ketika baris induk dihapus baris anak yang diperlukan juga secara otomatis dihapus.

Berikut contohnya:


BUAT pengguna TABEL (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR (100) NOT NULL UNIQUE,
full_name VARCHAR (100) BUKAN NULL,
Created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) mesin = InnoDB;
BUAT pesanan TABLE (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
jumlah DECIMAL (8,2) NOT NULL,
product_name VARCHAR (200) BUKAN NULL,
KUNCI ASING (userid) DAFTAR PUSTAKA pengguna (id) PADA DELETE CASCADE
) mesin = InnoDB;

Anda akan melihat klausa FOREIGN KEY sebagai baris terakhir. Baris ini hanya menyatakan tabel ini berisi baris anak yang dihubungkan oleh identitas pengguna kolom ke baris induknya, yaitu Indo kolom dari pengguna meja. Artinya, setiap kali baris dihapus dari pengguna tabel, mySQL secara otomatis akan menghapus semua baris yang sesuai dari pesanan tabel membantu memastikan integritas struktural dalam database Anda.

Perhatikan juga mesin = InnoDB di akhir pernyataan di atas. Meskipun InnoDB sekarang adalah jenis tabel mySQL default, itu tidak selalu, jadi ini harus ditambahkan hanya agar tetap di sisi yang aman, karena cascading hanya berfungsi dengan tabel InnoDB.

Desain Dengan Percaya Diri

Anda sekarang sedang dalam proses merancang skema database mySQL yang solid dan terstruktur dengan baik. Dengan menggunakan pengetahuan di atas, Anda sekarang dapat menulis skema yang terorganisir dengan baik yang menyediakan kinerja dan integritas struktural.

Dengan skema Anda di tempat, pastikan Anda tahu cara menggunakannya dengan ini perintah SQL penting.

Surel
Bagaimana Mengkueri Beberapa Tabel Database Sekaligus Dengan SQL Bergabung

Pelajari cara menggunakan gabungan SQL untuk menyederhanakan kueri, menghemat waktu, dan membuat Anda merasa seperti pengguna kekuatan SQL.

Topik-topik terkait
  • Tidak ditentukan
Tentang Penulis
Matt Dizak (18 Artikel Dipublikasikan)Selebihnya Dari Matt Dizak

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.

.