En términos generales, un buen diseño de base de datos es un buen diseño de base de datos: la pregunta más importante para el uso de la web será cómo acceder a los datos y administrar las cosas que uno podría considerar requieren un estado que básicamente la web no tiene.
Pensando en ello, mi enfoque se basa en bastante mucha experiencia ... pero si comienzas con un esquema u objetos, en realidad estás tratando de hacer lo mismo, es decir, construir un modelo utilizable de tus datos, para un número sustancial de es probable que exista una relación bastante directa entre el modelo y el esquema (no en todos los casos, y probablemente no para todas las tablas / objetos), por lo que realmente se trata de construir un modelo decente comenzando donde sea cómodo y trabajando desde allí.
En términos de la construcción de un modelo decente: @Tim lo tiene para las bases de datos y, fundamentalmente, la construcción de su modelo de objetos será muy similar: qué es único, qué es una jerarquía, dónde hay muchas o muchas relaciones, etc. llegar a una base de datos, asegúrese de hacer todo lo bueno.
También asegúrese de tener scripts o ddl en el código para permitirle crear el esquema desde cero y actualizarlo a medida que realiza cambios (ddl en el código es mi método preferido, tengo un sistema y funciona).