mesmo banco de dados para sites diferentes
24/11/2015
0
Sandro Oliveira
Post mais votado
24/11/2015
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.
Marcos P
Mais Posts
24/11/2015
Sandro Oliveira
24/11/2015
Sandro Oliveira
24/11/2015
Marcos P
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 !!!
24/11/2015
Sandro Oliveira
24/11/2015
Marcos P
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 !
24/11/2015
Sandro Oliveira
07/07/2018
Breno Castro
<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é.
08/07/2018
Leandro Meili
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.
Clique aqui para fazer login e interagir na Comunidade :)