Rangkuman dan Latihan
Poin-poin penting
- Kebanyakan aplikasi hanya butuh satu dari tiga bentuk penyimpanan — relasional, dokumen, atau key-value — dan relasional adalah pilihan default yang aman.
- Mulailah dengan basis data managed; kamu tetap memegang data dan keputusan skemanya, platform yang menjaga server tetap berjalan.
- Desain skema yang baik berarti tipe yang jujur, foreign key dan constraint, indeks yang masuk akal, dan tanpa data terduplikasi.
- Perlakukan setiap migrasi sebagai pintu satu arah: buat backup sebelum melakukan apa pun yang menghapus atau mengganti nama, dan tinjau migrasi buatan AI dengan cermat.
- Selalu wajibkan parameterized query sehingga input pengguna tidak pernah digabung langsung ke dalam .
Coba sendiri
Pilih satu ide aplikasi kecil dan tuliskan dulu entitas serta relasinya dalam bahasa sehari-hari. Lalu serahkan deskripsi itu ke AI dan minta skema beserta migrasi maju (forward migration) — dan tinjau hasilnya dengan checklist bab ini sebelum menjalankan apa pun.
Design a relational schema for a personal bookmarks app.
Entities and relationships:
- A user has many bookmarks.
- A bookmark belongs to one user, has a URL, a title, and many tags.
- A tag can apply to many bookmarks.
Requirements:
- Use UUID primary keys and created_at timestamps.
- Enforce relationships with foreign keys.
- Add indexes for the columns we'll filter on.
- Give me the schema as SQL plus a forward migration file.
- Flag any migration step that drops or renames so I can back up first.