MATERI 14 / 20
Database dan SQL: jaga hubungan serta aturan data
Database menyimpan data beserta hubungan dan aturan yang harus tetap benar. Merancang tabel dimulai dari arti data, identitas dan perubahan yang boleh terjadi.
Tabel bukan sekadar spreadsheet
Pisahkan entitas yang memiliki identitas sendiri. Pelanggan dan pesanan terhubung melalui ID pelanggan, bukan menyalin semua detail pelanggan ke setiap kolom tanpa alasan. Primary key memberi identitas, sedangkan foreign key dapat menjaga hubungan. Tentukan data historis yang memang perlu disalin, seperti harga saat pesanan dibuat.
Constraint menjaga aturan di penyimpanan
Not null, unique dan check membantu menjaga aturan meski penulisan datang dari lebih dari satu jalur aplikasi. Pemeriksaan di formulir tetap berguna, tetapi tidak cukup ketika dua permintaan tiba bersamaan. Tentukan juga kebijakan saat referensi dihapus. Menghapus pelanggan tidak otomatis berarti semua riwayat pesanan boleh hilang.
Gunakan parameter dan transaksi sesuai kebutuhan
Query terparameter memisahkan nilai input dari sintaks SQL. Jangan menyusun query dengan menempelkan teks pengguna. Ketika beberapa perubahan harus berhasil bersama, transaksi membantu menjaga satu kesatuan kerja. Transaksi lokal tidak otomatis mencakup layanan eksternal seperti pengiriman email; efek tersebut memerlukan rancangan tersendiri.
SELECT id, judul FROM catatan WHERE owner_id = ?; // Nilai owner_id diikat sebagai parameter oleh driver. BEGIN; UPDATE stok SET jumlah = jumlah - 1 WHERE id = 7 AND jumlah > 0; // Periksa hasil sebelum mencatat pesanan. COMMIT; // Contoh konsep, bukan alur checkout produksi lengkap.
Giliran kamu.
Modelkan pelanggan dan pesanan pada database latihan. Tambahkan primary key, foreign key dan aturan nomor pesanan unik. Coba input yang melanggar setiap aturan.
- Identitas dan hubungan jelas
- Constraint penting diuji
- Nilai input memakai parameter