Pelajaran 1Mengimplementasikan batasan: NOT NULL, UNIQUE, CHECK, FOREIGN KEY kaskade dan strategi ON DELETE/UPDATEImplementasikan batasan NOT NULL, UNIQUE, CHECK, dan FOREIGN KEY untuk menegakkan aturan bisnis. Rancang strategi ON DELETE dan ON UPDATE, termasuk CASCADE dan RESTRICT, untuk melindungi integritas data sambil mendukung alur kerja bisnis nyata.
Menggunakan NOT NULL untuk menegakkan data wajibMerancang kunci UNIQUE dan kompositBatasan CHECK untuk aturan bisnisOpsi dan trade-off FOREIGN KEYMemilih tindakan ON DELETE dan ON UPDATEPelajaran 2Definisi tabel: pengguna (autentikasi aplikasi) — kolom, hashing, salt, status akun, PKBuat tabel pengguna yang aman untuk autentikasi aplikasi. Definisikan kolom untuk nama pengguna, email, hash kata sandi, salt, dan status akun. Tangani kebijakan kata sandi, flag penguncian, dan hubungan ke bidang audit dan kepemilikan.
Identifikasi pengguna dan bidang loginPenyimpanan hash dan salt kata sandiStatus akun dan flag penguncianTautan peran, izin, dan profilKolom audit untuk aktivitas penggunaPelajaran 3Definisi tabel: klien — kolom, tipe, batasan, PK dan FK pentingDefinisikan tabel klien dengan kunci utama yang jelas, batasan unik, dan kunci asing ke entitas terkait. Pilih tipe data yang sesuai untuk nama, kontak, dan alamat, serta rancang kolom yang mendukung pencarian, segmentasi, dan kebutuhan audit.
Pilihan identifikasi klien dan kunci utamaKolom nama, kontak, dan alamatBatasan unik pada email dan kodeKunci asing dari pesanan dan fakturKolom audit dan metadata untuk klienPelajaran 4Pemodelan entitas dan normalisasi: pemetaan persyaratan ke tabel dan hubunganModel klien, pesanan, item_pesanan, faktur, dan pengguna sebagai entitas dengan hubungan yang jelas. Terapkan aturan normalisasi untuk mengurangi redundansi, petakan aturan bisnis ke tabel, dan putuskan kapan denormalisasi terkendali dibenarkan untuk performa.
Mengidentifikasi entitas dan hubunganMenerapkan aturan 1NF, 2NF, dan 3NFMemodelkan one-to-many dan many-to-manyMenangani hubungan opsional dan wajibKapan dan bagaimana denormalisasi dengan amanPelajaran 5Strategi indeks: kandidat indeks (kolom tunggal dan komposit) dan rasionalRencanakan strategi indeks untuk klien, pesanan, item_pesanan, faktur, dan pengguna. Pilih kandidat indeks kolom tunggal dan komposit berdasarkan pola kueri, dan seimbangkan performa baca dengan overhead tulis dan pertimbangan penyimpanan.
Mengidentifikasi pola kueri bernilai tinggiIndeks kolom tunggal versus kompositIndeks penutup untuk kueri kritisIndeks kunci asing dan bidang statusPemantauan dan penyetelan penggunaan indeksPelajaran 6Definisi tabel: faktur — kolom, tipe, hubungan ke pesanan dan klienRancang tabel faktur dan hubungannya dengan pesanan, klien, dan pembayaran. Definisikan kolom untuk total, pajak, dan status, serta pastikan integritas referensial. Tangani pembayaran parsial, nota kredit, dan skema penomoran untuk kepatuhan.
Aturan identifikasi dan penomoran fakturMenghubungkan faktur ke klien dan pesananKolom total, pajak, dan mata uangPelacakan status dan siklus hidup fakturMenangani nota kredit dan penyesuaianPelajaran 7Pemilihan tipe data: numerik, desimal, UUID vs serial, timestamp dan penanganan zona waktuPilih tipe data yang tepat untuk identifikasi, jumlah, dan timestamp. Bandingkan numerik dan desimal untuk uang, UUID versus serial untuk kunci, dan diskusikan timestamp sadar zona waktu. Tangani presisi, penyimpanan, dan pertimbangan portabilitas.
Numerik versus desimal untuk nilai moneterKunci utama UUID versus serialKolom karakter dan teks untuk namaPraktik terbaik timestamp sadar zona waktuMenangani bidang tanggal-saja dan intervalPelajaran 8Definisi tabel: pesanan dan item_pesanan — kolom, tipe, kunci komposit, integritas FKDefinisikan tabel pesanan dan item_pesanan yang dinormalisasi, termasuk kunci utama dan komposit, integritas kunci asing, dan kolom esensial. Pelajari cara menangkap kuantitas, harga, status, dan memastikan hubungan konsisten ke klien dan faktur.
Kolom inti untuk pesanan dan item_pesananMemilih kunci utama dan kompositKunci asing ke klien, pengguna, fakturMemodelkan kuantitas, harga, dan diskonBidang status dan pelacakan siklus hidupPelajaran 9View materialisasi dan tabel turunan untuk pelaporan agregat faktur/pesananJelajahi view materialisasi dan tabel turunan yang merangkum pesanan dan faktur. Pelajari cara merancang agregat untuk pendapatan, pajak, dan aktivitas pelanggan, strategi refresh, dan trade-off performa antara pelaporan real-time dan batch.
Mengidentifikasi agregat pelaporan kunciMerancang tabel ringkasan dan rollupStrategi refresh view materialisasiMenangani data terlambat dan koreksiIndeks dan partisi tabel pelaporanPelajaran 10Merancang untuk multitenancy dan soft delete (pendekatan tenant_id, deleted_at)Rancang skema yang mendukung beberapa penyewa dan soft delete. Bandingkan strategi tenant_id, isolasi tingkat baris, dan trade-off skema-per-penyewa. Implementasikan kolom deleted_at, pola filter, dan batasan yang melestarikan data historis.
Kolom tenant_id versus skema per penyewaKeamanan tingkat baris dan isolasi penyewaMengimplementasikan bidang soft delete deleted_atPola kueri untuk mengecualikan baris soft-deleteMemulihkan dan mengaudit catatan soft-delete