Tidak mungkin mengatakan apakah desain basis data tertentu buruk tanpa mengetahui apa yang dilakukan aplikasi, bentuk data, harapan kinerja, dan sebagainya. Sementara umumnya normalisasi (sampai taraf tertentu) dipandang sebagai praktik terbaik, itu cukup umum untuk menormalisasi area basis data untuk alasan kinerja sehingga baik dan buruk sangat terbuka untuk diskusi tanpa lebih banyak data daripada yang dimiliki kebanyakan orang ketika mereka mulai.
Tambahkan banyak pendekatan yang dapat diambil untuk objek ke pemetaan relasional dan hal-hal menjadi lebih kompleks karena struktur database "terbaik" akan tergantung pada model objek tertentu, tingkat warisan dan sebagainya.
Dengan mengambil satu ukuran untuk semua pendekatan, perpustakaan ORM persisten hampir akan selalu menghasilkan struktur database yang tidak optimal untuk setiap situasi tertentu dan akan menggunakan beberapa hal yang dapat dilihat sebagai praktik buruk untuk situasi tertentu .
Anda tentu saja dapat menulis ORM yang dinormalisasi tetapi Anda akan melihat implikasi kinerja yang lumayan besar karena untuk setiap sisipan ke tabel utama diperlukan untuk memindai berbagai tabel pencarian untuk melihat apakah ada nilai, jika mereka mendapatkan kunci dan jika tidak dapat melakukan sisipan yang relevan.
(Ketika Anda melakukan ini dengan tangan, Anda dapat memotong sebagian dari ini karena Anda tahu Anda telah mempresentasikannya dengan drop-down yang hanya berisi nilai yang valid sehingga Anda tidak perlu melakukan ini, Anda hanya dapat menggunakan kunci senang bahwa itu akan terjadi agar valid, ORM tidak dapat membuat asumsi itu karena tidak mengontrol UI.)
Tetapi yang harus Anda ingat adalah bahwa mereka tidak bertujuan untuk mengoptimalkan kinerja database atau integritas data, mereka mengoptimalkan untuk kecepatan pengembangan . Jika struktur spesifik data Anda penting bagi Anda, maka Anda harus membuat kode objek / pemetaan RDBMS dengan tangan, atau paling tidak melakukan penilaian terperinci atas semua perpustakaan yang tersedia dan memilih yang paling sesuai dengan kebutuhan Anda ( jika ada).
Pada dasarnya itu datang ke persyaratan dan pertukaran antara data yang terstruktur dengan baik, kinerja database dan kecepatan pengembangan. Seperti banyak trade-off Anda tidak bisa memilih ketiganya.