mesmo banco de dados para sites diferentes

24/11/2015

2

SQL

gostaria de ajuda..tenho 3 sites diferente e quero usar o mesmo banco de dados para os tres, como faço? alguem pode me ajudar???
Responder

Post mais votado

24/11/2015

Sandro,

Você já tem suas tabelas, certo ?

Se a ideia é isolar isso por programação, é "só" inserir uma coluna adicional em todas as tabelas. Essa nova coluna define a qual site pertence o registro que você está tratando. Na verdade é ela uma FK de uma tabela com o cadastro de sites válidos em seu sistema.

Se, por outro lado, sua necessidade for ter chaves repetidas para clientes diferentes ( por exemplo : uma nota-fiscal número 86312 para três clientes distintos), ao invés de uma coluna, você vai trabalhar com um alias no nome da tabela ( por exemplo : NotaFiscal_ClienteABC, NotaFiscal_ClienteDEF, NotaFisca_ClienteXYZ,... ). Em tempo de manipulação ( CRUD ), nessas tabelas, "basta" você concatenar o alias do cliente no código das queries.

Essa abordagem é suportada "automaticamente" por alguns bancos de dados. É o caso do conceito de "Schema" do PostgreSQL, descrito nesse link.

Essa são alternativas para ter tudo em um mesmo banco.

Eu, particularmente, recomendo trabalhar com bancos separados para evitar toda essa manobra.

Trocou o site, troca o "databaseName" na string de conexão e pronto !

Se seus problemas passarem por questões de hospedagem, dê uma olhada nesse link.
Responder

Mais Posts

Todos vão suportar essa base de dados?
Responder
é um site de relacionamento, mas terei 3 ou mais dominios só que na verdade preciso usar um banco só, nele eu defino de que site é mas preciso todos eles no mesmo banco. Vc podera se cadastrar num site de relacionamento evangelico e encontrar um que seja tbm, mas q se cadastrou no outro site... onde hospedo meus sites disse que tem como é só programação, vincular o usuario sei la...não sei como fazer
Responder
obrigado amigo marcos mas na verdade nao é isso. sao 3 sites com dominios diferentes, como uso o mesmo banco para os 3. tem q ser um banco só pois se alguem se cadastrar no site 1 eu quero que alguem q se cadastrou no site 2 encontre ele e assim por diante se cada site tiver seu proprio banco nenhum encontra o outro..ai teria eu q me cadastrar nos 3 site...
Responder

24/11/2015

Marcos P

Acho que você não entendeu...

Se a ideia é isolar isso por programação, é "só" inserir uma coluna adicional em todas as tabelas. Essa nova coluna define a qual site pertence o registro que você está tratando. Na verdade é ela uma FK de uma tabela com o cadastro de sites válidos em seu sistema.

Se, por outro lado, sua necessidade for ter chaves repetidas para clientes diferentes ( por exemplo : uma nota-fiscal número 86312 para três clientes distintos), ao invés de uma coluna, você vai trabalhar com um alias no nome da tabela ( por exemplo : NotaFiscal_ClienteABC, NotaFiscal_ClienteDEF, NotaFisca_ClienteXYZ,... ). Em tempo de manipulação ( CRUD ), nessas tabelas, "basta" você concatenar o alias do cliente no código das queries.

Essa abordagem é suportada "automaticamente" por alguns bancos de dados. É o caso do conceito de "Schema" do PostgreSQL, descrito nesse link.

Essa são alternativas para ter tudo em um mesmo banco.


Essas são alternativas para ter tudo em um mesmo banco !!!
Responder
sim entendi, qto a isso blz... posso não estar explicando direito. mas vamos supor que vc tem um site e eu outro, vc um site de amigos e eu de amigas, mas todo o cadastro será no seu banco de dados queremos que nele tenha tanto os amigo qto as amigas, como o meu site tera acesso ao seu banco de dados para eu cadastrar as amigas??? é isso que preciso, tenho 3 sites, como vou acessar o bando de dados do site "PAI" por exemplo????
Responder

24/11/2015

Marcos P

Site PAI ?

O que isso tem a ver com a descrição original do seu problema ?

Bem... partindo do pressuposto que vai existir algum tipo de relacionamento entre os sites, crie uma tabela que modele essa dependência.

Algo como :

ID     Site     SitePai
------ -------- --------
 1     ABC       0
 2     DEF       1
 3     GHI       2
 4     JKL       1
 5     MNO       3
 :     :         :
54     XYZ      14


Essa tabela permite identificar todos os predecessores de um determinado site ( pai, avô, ... ).

Com essa tabela e o esquema que lhe expliquei de inserir uma chave do domínio do registro ( em todas as tabelas ), você consegue buscar ( recursivamente ) em todos os cadastros relacionados ao site atual, se determinado código já existe.

Se isso, mesmo assim, não resolve seu problema... tenha certeza que a solução é uma variação disso !

Como você conhece o cenário melhor que eu, talvez seja mais simples você derivar a solução para o seu caso, conforme um desses exemplos.

Boa sorte !
Responder
blz..valeu pela ajuda..o problema deve estar sendo eu mesmo..devo ser muito burro que nao to explicando direito só isso...valeu ai....
Responder

07/07/2018

Breno Castro

Não Sandro Oliveira, você não é burro não cara, eu entendi sua pergunta e estou com o mesmo problema que você<br />
<br />
Tenho uma conta no Infinity Free, e tenho dois domínios nele, um site é para versão Desktop, e outro site para versão Mobille, como o do facebook (facebook.com || m.facebook.com) - E tem o sistema de usuários nele, e tipo, cada domínio tem seu BANCO DE DADOS, esse é o problema, eu Nn quero usar dois banco de dados, um para celular e o outro para computador, eu quero um para os dois, que o usuário que se conectar no celular possa entrar também pelo computador assim como o facebook, e PELO AMOR DE DEUS, Nn venha me dizer pra fazer um site só de forma responsiva, por que se eu quis fazer dois sites um alternativo para pc e o outro para mobille, é pq eu quis e achei melhor assim.<br />
<br />
Então Sandro sua pergunta foi bem feita, só que infelizmente eu estou com o mesmo problema que você estava, devido a data, creio que já tenha resolvido...<br />
<br />
Simples assim, tenho 2 sites cadastrados, e quero usar o mesmo banco de dados ué.
Responder

08/07/2018

Leandro Meili

Com relação à conexão com o banco, é uma questão de fazer os três site apontarem para o mesmo banco. Pensei num exemplo, de três sites (site1.com, site2.com, site3.com), com um front-end web (html, css), um back-end com um webserver apache e php, e um banco de dados MySQL

Front End | Back End | SGBD
====================================
site1.com | Apache1 + php1 |
site2.com | Apache2 + php2 | MySQL (banco_master)
site3.com | Apache3 + php3 |

O que você teria que fazer nesse exemplo é criar um objeto PDO em cada projeto de php que abre uma conexão com o banco de dados.

$pdo = new PDO('mysql:host=endereco_ip_sgbd;
port=8889;
dbname=banco_master',
'nome_usuario','senha');

Assim todos os sites apontam para o mesmo banco de dados.

Essa é a parte fácil. Você vai ter que gastar um tempo no desenho do banco, e como estruturar as tabelas e as atualizações de registros, num ambiente em que você terá três sites alterando e buscando registros.
Responder