[Ajuda] Minha solução para criação de banco de dados é muito "porca"?

Primeiramente, vou dar a mais breve possível descrição do sistema que meu grupo está desenvolvendo:
É um sistema adaptável para diferentes micro e pequenas empresas de diversos ramos. O acesso ao mesmo será feito através de um browser em páginas JSP.
O usuário deverá instalar o programa primeiramente em seu computador, o sistema gerará os arquivos e sua estrutura de pastas, e então o usuário deve dar upload nesses arquivos para algum servidor web.
Aqui que entra o problema:
Na instalação o usuário deverá descrever que entidades (Cliente, Produtos, etc) assim como seus respectivos atributos (código que é padrão, nome, etc.), e o instalador trata de gerar todos os arquivos e pastas, até aí beleza, mas o problema está na geração do banco de dados.

A idéia mais fácil que tive foi gerar o código SQL das tabelas, aí era só mandar o usuário criar o banco de dados no servidor através das ferramentas simples que o servidor disponibiliza, aí era só mandar ele colar o código que cria as tabelas no local apropriado do menu do banco de dados e aí o banco estaria pronto. Teoricamente funciona, mas na opinião de vocês, isso seria inapropriado?

Olá BrunoCampera!

Resumindo seria: O seu sistema criaria o DDL do Banco de Dados e alguém executaria certo? Este alguém na teoria seria o próprio cliente correto?
Tem duas visões básicas, caso seja essa a dúvida:

  • Clientes que exigem que o script seja executado por ele
  • Clientes que não sabem (e muitas vezes nem querem saber) o que é um script.

Na empresa onde trabalho temos as duas situações:
Nossos clientes grandes como Metrô, BicBanco, BankOfAmerica e por aí vai exigem
que o script a ser executado seja mostrado, logo sempre contam com um DBA que analisa e executa os scripts, normalmente
depois do preenchimento de algum tipo de documentação.

Já os clientes menores a situação é contrária: Eles não querem saber como será essa execução. Assim, para este caso uma das soluções
elegantes é a criação de algum tipo de Atualizador/Instalador para o seu banco de dados.

Assim, depende do tipo de usuário que você pretende trabalhar.
Mas a grosso modo, deixar que o usuário “rode” scripts de criação de banco é deselegante, a não ser que você encaixe seu
usuário no primeiro perfil.

Abraços!