Ich habe ein System, das wir kürzlich entwickelt haben - eine Webanwendung über eine SQL-Server-Datenbank. Die SQL Server-Datenbank wurde als "Multi-Tenant" -Datenbank eingerichtet, wobei viele verschiedene "Installationen" unserer Website auf dieselbe Datenbank zugreifen.Zugriff auf Daten aus anderen Datenbanken - Systemarchitektur
Wir haben eine andere Anwendung, die in ähnlicher Weise läuft, mit dem Hauptunterschied, dass sie viele verschiedene 'Installationen' hat, die alle auf ihre eigenen Datenbanken zugreifen.
Alle diese Websites werden auf demselben Server ausgeführt, und alle Datenbanken befinden sich in derselben SQL Server-Instanz.
Jeder unserer Kunden hätte eines dieser Systeme und bis zu diesem Zeitpunkt hatten wir eine ziemlich leichte Integration zwischen diesen beiden Systemen, die über Web-Service-Aufrufe abgewickelt wurde.
Wir haben jetzt eine neue Änderung, die erfordert, dass ich eine Liste von Daten aus dem Multi-Tenant-System zurückgebe, aber basierend auf Kriterien, die in den Datenbanken des anderen Systems gespeichert sind. Ich kann ein paar Möglichkeiten, dies zu tun, aber frage mich, ob jemand irgendwelche guten Ideen hatte:
Web-Service erneut - sie diese Idee nicht gefällt, da es bedeutet, eine Liste von Daten zu nehmen und einen Anruf tätigen für jeden einzelnen Gegenstand, der sowohl langsam als auch hässlich ist.
Schreiben von dynamischem SQL innerhalb der Datenbankschicht, um einen Join auf .dbo.table zu machen, der auch ein bisschen hässlich ist und schwer zu pflegen sein kann.
Replizieren Sie die Daten von einer Datenbank zur anderen. Hier tendiere ich dazu, allerdings besteht dann das Risiko, dass die Daten nicht mehr synchron sind.
ich etwas Gescheites über Ansichten in meiner Multi-Tenant-Datenbank tun mag, aber ich möchte nicht einen separaten Satz von Ansichten, die wir für das zweite System eine neue Datenbank erstellen jedes Mal zu schaffen haben ...