Farklı veritabanlarında birden tabloları bağlamak?

2 Cevap php

Hey, ben php kullanarak ve tablolardan bu veritabanlarından her biri içinde bilgi toplama mysql en az 2 veritabanlarına bağlanmak için iyi bir yol arıyorum.

Tablolar ile ilgili bilgi sahibi olur. örn. Ben 'siteler' denilen bir tablo bir veritabanından ('siteinfo') site isimleri var. Ben de 'açıklamaları' adlı bir tabloda başka bir veritabanı ('sitedescriptions') site açıklamaları var.

Ben bu iki veritabanları birbirleriyle konuşmak için almak gibi olamaz. Ben yukarıdaki yapıyor hakkında gitmek nasıl biliyor mu? Php / mysql için oldukça yeni.

Ayrıca, 'açıklamaları' tablosundaki siteleri tablosunda tek bir sitede ilgili bilgi üç satır vardır. o bu satırları onu ilgilidir, sadece tek bir site ile konuşmak almak mümkün mü?

Herhangi bir yardım için teşekkür ederiz.

2 Cevap

Sizin için iyi bir strateji hem de veritabanlarına aynı erişime sahip tek bir MySQL kullanıcı tanımlamak olabilir. Böyle bir şey:

GRANT ALL ON siteinfo.* TO user@localhost IDENTIFIED BY 'password';
GRANT ALL ON sitedescriptions.* TO user@localhost IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Bir kullanıcı olarak bir bağlantısı sağlandıktan sonra, her iki veritabanlarına erişebilir, ve veritabanı adı ile tablo adları önek tarafından kolayca başvurabilirsiniz.

SELECT * FROM siteinfo.sites;

Hatta hiçbir zorluk ile bu şekilde veritabanları genelinde tabloları katılabilirsiniz. Yani bir site için her üç açıklama satırları almak için, ikinci soruyu cevaplamak için, bunu yapabilirsiniz (siteleri her veritabanında aynı kimlikleri var, ya da varsayarak aynı adı veya size katılabilir benzersiz bir şey):

SELECT * FROM
    siteinfo.sites AS s LEFT JOIN 
    sitedescriptions.description AS d ON s.siteId=d.siteId
WHERE s.siteId=123;

Ben her zaman benim tablolar için tam adını kullanın. TableA adında bir tablo dba denilen bir veritabanında olup olmadığını Yani, aşağıdaki sorgu yapardı:

SELECT * FROM dba.tablea

Bu gerçekten kolay veritabanlarını geçiş yapmanızı sağlar. Bunu yapmak için hatırlamak istemiyorsanız, ben de onu içeri koymak hangi zaman, sizin her tablo için sabitler tanımlayan önermek