Pengalaman sangat penting, tetapi dalam hal desain tabel Anda dapat belajar banyak dari bagaimana ORM seperti Hibernate dan Grails beroperasi untuk melihat mengapa mereka melakukan sesuatu. Sebagai tambahan:
Pisahkan jenis data yang berbeda - jangan menyimpan alamat di tabel pesanan Anda, tautkan ke alamat di tabel alamat yang terpisah, misalnya.
Saya pribadi suka memiliki bilangan bulat atau kunci pengganti yang panjang pada setiap tabel (yang menyimpan data, bukan yang menautkan tabel yang berbeda bersama-sama, hubungan e, g., M: n) yang merupakan kunci utama.
Saya juga suka memiliki kolom cap waktu yang dibuat dan dimodifikasi.
Pastikan bahwa setiap kolom yang Anda lakukan "di mana kolom = val" dalam kueri apa pun memiliki indeks. Mungkin bukan indeks yang paling sempurna di dunia untuk tipe data, tetapi setidaknya indeks.
Siapkan kunci asing Anda. Juga atur ON DELETE dan ON MODIFY aturan mana yang relevan, baik kaskade atau set null, tergantung pada struktur objek Anda (jadi Anda hanya perlu menghapus sekali pada 'kepala' dari pohon objek Anda, dan semua sub-objek objek mendapatkan dihapus secara otomatis).
Jika Anda ingin memodernisasi kode Anda, Anda mungkin ingin membuat modularise skema DB Anda - mis., Ini adalah area "pelanggan", ini adalah area "pesanan", dan ini adalah area "produk", dan menggunakan tabel join / link di antara mereka, bahkan jika itu adalah relasi 1: n, dan mungkin menduplikasi informasi penting (yaitu, menduplikasi nama produk, kode, harga ke tabel order_details Anda). Baca tentang normalisasi.
Orang lain akan merekomendasikan hal yang sebaliknya untuk beberapa atau semua hal di atas: p - tidak pernah ada cara yang benar untuk melakukan beberapa hal eh!