Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

asdasdasd

"Unir Tabelas"

Recommended Posts

Bom estou querendo fazer o seguinte:

 

Tenho 2 sql , 'A' e 'B'

 

A sql 'A' quero usar em um site. E a sql 'B' para um forum.

 

Quero ter os mesmos usuários cadastrados no site, cadastrados no forum sem que eles precisem se registrar 2 vezes.

 

Ou seja: copiar os dados de uma tabela a_user para outra b_user automaticamente assim que um novo usuário se registrar.

 

Eis o problema: como fazer?

 

Duvidas: tenho que criar 2 bancos de dados diferentes uma para cada sql?

tenho que criar 1 banco de dado e importar as 2 sql para ele?

 

Espero que alguem possa me ajudar indicando um tutorial ou um artigo.

 

Agradeço desde já, se precisar de mais informações para me ajudar só pedir.

 

Obrigado!

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Criar uma VIEW que faça um UNION das duas tabelas, as leituras por esta VIEW veriam os dados das duas tabelas.

 

ou

 

2) Criar duas TRIGGERS (uma para cada tabela) que faria um INSERT dos dados na outra tabela, A >> B , B >> A, a lógica teria de fazer um tratamento para que as chamadas não fiquem recursivas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou escolher a primeira opção porque me parece menos difícil. Vou procurar um artigo que mostre como fazer isso se você tiver um ai poderia me passar.

 

Obrigado por responder, mesmo se não tiver um artigo me deu uma luz de como começar a trabalhar nisso.

 

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O nome não, mas o números e os tipos devem ser os mesmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu só estava preocupado com o nome mais os dados tem de ser o mesmo por questões obvias.

 

Você poderia me dar um código para unir as duas tabelas?

 

Nome delas a_user e b_user.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você poderia me dar um código para unir as duas tabelas?

 

Nos links passados tem exemplos de views, é isto que vc quer ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais tem de especificar o nome da coluna e para qual coluna da outra tabela vai copiar?

 

 

E a ordem tem de ser a mesma? Exemplo:

 

 

 

a_user:


guid | account |  pass | email


b_user:


id |  user_login | user_pass | user

 

ou pode ser diferente

 

 


 

a_user:


account | guid |  email | pass


b_user:


id |  user_login | user_pass | user

 

Queria um exemplo do meu caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue o nome ou alias dado no 1º select (

 

 

CREATE VIEW V_TUDAO AS
SELECT CNPJ , NOME_FORNECEDOR NOME, CIDADE
FROM   FORNECEDOR
UNION ALL
SELECT CNPJ , NOME_CLIENTE , CIDADE
FROM   CLIENTE
V_TUDAO terá as colunas CNPJ , NOME, CIDADE

Compartilhar este post


Link para o post
Compartilhar em outros sites
CREATE VIEW nome_db AS SELECT GUID, ACCOUNT, PASS, EMAILFROM   A_USERS UNION ALL SELECT ID , ACCOUNT, PASS, EMAIL FROM   B_USERS

Ficaria assim no meu caso? Copiando da a_users para a b_users?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Unindo numa view não copiando.

 

mas um

 

select * from nome_db

 

trará tudo.

 

Nota :

É bom nomear as views como V_<nome> pois não se confudem com tabelas

numa leitura do SQL, padronização apenas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De alguma forma vc iria trabalhar com as tabelas A_USERS e B_USERS para leitura, não ?

 

Com a VIEW o select de ambas já está feito, encapsulado na VIEW.

 

A manutenção (insert/update/delete) continua sendo feito de forma separada

 

"A sql 'A' quero usar em um site. E a sql 'B' para um forum."

 

mas a VIEW (com o UNION) "junta" as duas tabelas numa consulta só.

 

 

Ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.