multi-tenant-Architektur-Datenbank

Baue ich eine SAAS-Anwendung, und wir diskutieren über eine Datenbank pro Mandant vs gemeinsam genutzten Datenbanken. Ich habe viel gelesen, incluisve einige Themen hier bei SO aber ich habe immer noch viele Zweifel.

Unserer plataform sollten hochgradig anpassbar sein, der von jedem client. (Sie sollten in der Lage sein, um benutzerdefinierte Tabellen und benutzerdefinierte Felder hinzufügen zu vorhandenen Tabellen).
Die mehrere Datenbank-Leitbild, scheint groß in diesem Fall.

Das problem ist. sollte mein "user" - Tabelle in der master-Datenbank oder in jedem der client-Datenbank?.
Ein Benutzer kann eine oder mehrere Organisationen, so würde es vorhanden sein, in mehreren Datenbanken.
Auch, was die generische Tabellen wie die Länder, Tabelle, etc?

Es Sinn macht, in der master-Datenbank. Aber ich habe viele Tabellen mit einem created_by Feld, das einen Fremdschlüssel auf die user. Auch haben einige Berechtigung verknüpften Tabellen von client.

Ich würde Locker die power von fremden Schlüsseln, wenn mehrere Datenbanken, was bedeutet, dass mehr Anfragen an die Datenbank. Ich weiß, ich kann mit cross-join zwischen Datenbanken, wenn Sie in den gleichen server, aber dann habe ich Locker Skalierbarkeit. (Ich könnte Sie benötigen, um mehrere Datenbank-Server in Zukunft).
Ich dache über federated-Tabellen. Nicht sicher über die Leistung.

Den Technologien, die ich verwende, sind php und symfony 2-framework und mysql für die Datenbank.

Ich bin auch erschrocken über die Wartung eines solchen Systems. Wir erstellen könnte einige Skripte zum automatisieren der schema-änderungen in allen Datenbanken, aber wenn man 10k clients das würde bedeuten, dass 10k-Datenbanken.

Was ist Ihre opiniion über diese?
Die wichtigsten caracteristic meiner app sollte Flexibilität, so dass, wenn ein Kunde braucht etwas spezifischer als die Basis plataform nicht haben, sollte es möglich sein, es zu tun für ihn.

  • Lesen Sie diese msdn.microsoft.com/en-us/library/aa479086.aspx
  • Was ist die empfohlene StackExchange für diese Art von Frage. Nachdem alle, es ist ein gutes Thema für die Diskussion, wo die Leute lernen können.
  • toll, eine weitere geschlossene Frage
InformationsquelleAutor brpaz | 2013-01-28
Schreibe einen Kommentar