Esa optimización prematura significa que no debes optimizar en absoluto. He visto bases de datos más terriblemente malas porque nadie quería considerar el rendimiento (crítico para cualquier sistema de base de datos) en el diseño, ya que era una optimización prematura que cualquier otro problema de diseño de la base de datos. Basura, hay conocidos asesinos de rendimiento, deja de usarlos como tu primera opción.
Otro mito, es demasiado difícil refactorizar la base de datos. No, pero debe considerar cómo refactorizar en la fase de diseño para hacerlo de manera efectiva. Y, por cierto, cuanto más espere para solucionar ese molesto problema de rendimiento basado en el diseño, más difícil será solucionarlo.
Otro mal mito, el diseño de la base de datos debe reflejar los principios de OOP. No, las bases de datos están diseñadas para funcionar con conjuntos, no con principios OOP. Algunas cosas de OOP causarán problemas de rendimiento horribles y otras son simplemente tontas en términos de bases de datos.
Finalmente, debe hacer cumplir la integridad de los datos en la aplicación. Las bases de datos van a durar más allá de la aplicación y perderían las reglas cuando se reemplaza la aplicación, múltiples aplicaciones van a acceder a ellas y a menudo será necesario ejecutar consultas directas para arreglar cosas que no pasan por la aplicación. Nunca he visto una base de datos que se niega a hacer cumplir la integridad de los datos en la base de datos que tiene buenos datos.