Não há uma resposta definitiva, pode depender do projeto, do expertise da equipe, que ferramentas vai usar ou outros critérios.

É certo que todo sistema deveria começar pela estrutura de dados, e em muitos casos isso significa começar pelo banco de dados, seja no modelo físico ou no modelo lógico (algo que quase todo mundo ignora ou faz de outro jeito sem perceber). Mas hoje muita gente cria as estruturas de dados da aplicação e tenta encaixar o banco de dados nisso. Minha experiência é que isso tende a não dar bom resultado.

Mas ainda fica a questão de quem é mais importante para o projeto. Se não for possível determinar, eu iria pelo DB.

Por outro lado, em aplicações simples, e a maioria delas são simples, qualquer coisa funciona e fazer o mais simples costuma ser a melhor decisão. E por isso pensar demais sobre o problema pode ser um caso de overengineering.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

overengineering é um termo que eu não conhecia mas que talvez resuma bem o porquê dos meus projetos sempre ficarem presos no papel...

obrigado pela sua resposta, foi bastante esclarecedora e me ajudou a refletir um pouco sobre essas decisões relacionadas ao projeto, no meu ver acredito que começar pelo banco de dados tende manter o projeto "organizado", já que estamos definindo de fato o que é importante ou não.

futuramente compartilharei os resultados, abraços...

S2