Optimasi prematur itu berarti Anda tidak boleh mengoptimalkan sama sekali. Saya telah melihat database yang lebih buruk karena tidak ada yang ingin mempertimbangkan kinerja (penting untuk sistem basis data apa pun) dalam desain karena itu adalah optimasi prematur daripada masalah desain database lainnya. Sampah, ada pembunuh kinerja yang dikenal, berhenti menggunakannya sebagai pilihan pertama Anda.
Mitos lain, terlalu sulit untuk memperbaiki database. Tidak, tetapi Anda harus mempertimbangkan bagaimana melakukan refactoring pada fase desain untuk melakukannya secara efektif. Dan BTW, semakin lama Anda menunggu untuk memperbaiki masalah kinerja berbasis desain yang menjengkelkan itu, semakin sulit untuk memperbaikinya.
Mitos buruk lainnya, desain database harus mencerminkan prinsip-prinsip OOP. Tidak, basis data dirancang untuk bekerja dengan set bukan prinsip OOP. Beberapa hal OOP akan menyebabkan masalah kinerja yang mengerikan dan yang lain hanya sangat konyol dalam hal basis data.
Akhirnya, Anda harus menegakkan integritas data dalam aplikasi. Basis data akan bertahan melewati aplikasi dan akan kehilangan aturan ketika aplikasi diganti, aplikasi mulitple akan mengaksesnya dan sering kali ada kebutuhan untuk menjalankan kueri langsung untuk memperbaiki hal-hal yang tidak melalui aplikasi. Saya belum pernah melihat database yang menolak untuk menegakkan integritas data dalam basis data yang memiliki data yang baik.