Frage

Was sind Ihre Methoden der Verknüpfung von Daten, verteilt über mehrere Datenbanken Architekturen (man denke MySQL vs PostgreSQL usw.), in einer einzigen Anwendung?

Möchten Sie Riesen-Hash-Tabellen / Arrays erstellen Inhalt gegeneinander passen? Gibt es andere, effektiver und weniger speicherintensive Möglichkeiten, dies zu tun?

Wenn Sie sind Daten zu verwenden, sowohl aus einer MySQL & PostgreSQL Quelle, ohne die Möglichkeit eine DB der Umwandlung zu den anderen (Anwendungsbeschränkungen, Zeitmangel, Mangel an Wissen, ...), wie würden Sie sie gehen über ?

War es hilfreich?

Lösung

Zumindest im Fall von MySQL können Sie Daten aus mehreren Datenbanken in einer einzigen Abfrage verwenden sowieso, vorausgesetzt, dass die Datenbanken, die von der gleichen MySQL Server-Instanz gehostet werden. Sie können Tabellen aus verschiedenen Datenbanken unterscheiden, indem Sie die Tabelle mit einem Schemanamen qualifiziert:

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);

In PostgreSQL können Sie auch Tabellenverweise mit einem Schemanamen qualifizieren. Ich bin mir nicht sicher, ob Sie Fremdschlüsselbedingungen für Datenbanken erstellen können, though.

Andere Tipps

SQL Relay oder ein anderer SQL-Proxy. http://sqlrelay.sourceforge.net/

Wenn Sie schauen, Einschränkungen für RDBMSes zu schaffen -. Sie können nicht

Ich bin vor dem gleichen Problem mit einem Teil einer Anwendung aus PostgreSQL läuft für wo sie profitieren, und der Rest von MySQL, wo es besser ist.

Ich mache mehrere Einsätze das gleiche Format von Primärinformationen (in meinem Fall eine generische Benutzer-ID) verkeilt ab, so lasse ich die Anwendung der Logik dafür, dass Griff für die gleiche ID von beiden DBs fragen.

Es gibt nicht wirklich eine saubere Art und Weise dies außerhalb zu tun, den es zu einer Klasse oder Nutzenfunktion, obwohl abstrahiert, dass ich gefunden habe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top