Bağlama çoklu veritabanı bilgisi

2 Cevap php

Veri bağlama, yöntemleri tek bir uygulama içine, birden fazla veritabanı mimarileri (düşünmek MySQL PostgreSQL vb vs) yayılmış nelerdir?

Eğer birbirlerine karşı içerik maç için dev karışık tablolar / diziler oluşturmak istiyorsunuz? Bunu yapmak için başka, daha etkili ve daha az bellek tüketen seçenekler var mı?

Bir MySQL ve hem verilerini kullanmak olsaydı PostgreSQL kaynak, diğer bir DB dönüştürme hiçbir şekilde (uygulama kısıtları, zaman eksikliği, bilgi eksikliği, ...), bunu nasıl hakkında gitmek istiyorsunuz?

2 Cevap

En azından MySQL durumda, zaten tek bir sorguda birden veritabanlarından verileri kullanmak veritabanları aynı MySQL Server örneği tarafından barındırılan sağlanabilir. Bir şema adı ile tablo niteleyerek farklı veritabanlarından tabloları ayırt edebilirsiniz:

CREATE TABLE test.foo (id SERIAL PRIMARY KEY) TYPE=InnoDB;

CREATE DATABASE test2;
CREATE TABLE test2.bar (foo_id BIGINT UNSIGNED, 
    FOREIGN KEY (foo_id) REFERENCES test.foo(id)) TYPE=InnoDB;

SELECT * FROM test.foo f JOIN test2.bar b ON (f.id = b.foo_id);

PostgreSQL, ayrıca bir şema adı ile tablo başvuruları geçerli olabilir. Ben olsa, veritabanları arasında yabancı anahtar kısıtlamaları oluşturmak emin değilim.

Eğer RDBMS'lerinde genelinde kısıtlamaları oluşturmak için arıyorsanız - yapamazsın.

Ben yararlanacak nerede PostgreSQL kapalı bir uygulamanın parçası, ve bu daha iyi MySQL kalanını çalışan ile aynı sorunla karşı karşıya ediyorum.

(Benim durumda genel bir kullanıcı kimliği olarak) birincil bilgi aynı biçimi off anahtarlı, çok sayıda ekleme yapıyorum, bu yüzden uygulama hem veritabanları aynı kimlik sormak emin yapma mantığı ele izin veriyorum.

Ben buldum, ama, bir sınıf veya fayda fonksiyonu için soyutlayarak bu dışında temiz bir yol gerçekten yok.