Criar um banco de dados para cada entidade

Não estou sabendo pesquisar sobre o assunto. Estou com o seguinte problema:

Irei começar a desenvolver um software para minha empresa de fiscalização de obras. Eu quero que cada OBRA tenha seu próprio banco de dados no mySQL. Cada obra vai funcionar como uma aplicação independente. Até ai eu sei desenvolver.

O problema é que eu também vou desenvolver um modulo de gerenciamento de OBRAS, ou seja, toda vez que eu adicionar uma OBRA no modulo gerencial ele cria um novo banco de dados. Para acessar uma obra eu carregaria esta base de dados (como se fosse um programa chamando o outro).

Não estou conseguindo pensar numa forma de estruturar o acesso ao banco de dados. So tenho experiência em trabalhar com 1 atendendo toda a aplicação. Como vocês estruturariam as classes DAO, os entitymanegar, etc?

Vou programar em java e hibernate.

Obrigado pela ajuda.

Cara, não é mais fácil você criar apenas 1 banco de dados e colocar nas tabelas uma chave que identifica a obra?

Entendo ser melhor ter um BD por obra. Uma obra não conversa com outra em nada. É como se fosse um programa por obra e um gerencial que coleta informações delas.

Estou pensando em criar as sections sem arquivo XML como descrito abaixo
http://flpmartins88.github.io/java/hibernate/2015/08/02/hibernate-4-sem-xml.html

Estou arrumando meu notebook para fazer uns testes.

E qual a vantagem de fazer dessa maneira ? Fiquei curioso.

Diversos pontos, fundamentalmente pelo modelo de negócio. Em geral:

Uma obra gera um volume grande de informações (planilhas excel com centenas de milhares de item que são medidos mensalmente, etc).
Juntando o banco de dados eu teria uma infinidade de registros que dificultariam a comercialização dos serviços uma vez que cobro uma mensalidade por obra.
Por questão de confidencialidade, quando a obra acaba envio uma cópia para as partes envolvidas e deleto todas as informações (o cliente pode manter o resumo que fica no modulo gerencial se quiser).
Alguns clientes podem exigir para obra específica o armazenamento em servidores próprios.
Órgãos públicos podem exigir armazenamento em servidores próprios.
Posso agregar o serviço de hospedagem por obra para clientes que não possuem servidores próprios.
Posso negociar preços de armazenamento conforme demanda com diversas empresas por obra.

Bom, a minha regra do jogo é essa.

Att;

Talvez esse post seja um bom ponto de partida:

Muito obrigado Mendes.

Posso adotar duas formas: tudo separado ou compartilhar database com schemas por obra.
Nunca trabalhei com schemas, vou procurar na net.