2010-04-22 6 views
6

Ich bin dabei, eine Multi-Tenant-SaaS-Anwendung zu entwickeln, und ich habe mehrere Websites gefunden, die eine solide Methode zum Trennen der Daten mithilfe von Mandanten-IDs und aktualisierbaren Sichten beschreiben. z.B. This blog postGibt es PHP-Frameworks (z. B. CodeIgniter), die Datenbankverbindungen pro Benutzerkonto für die Verwendung in einer mandantenfähigen Datenbank unterstützen?

Es hängt alles von der Möglichkeit ab, dass Ihre Benutzerkonten von einer Master-Benutzertabelle authentifiziert werden und dann ihre jeweiligen Datenbankverbindungen diese benutzerspezifischen Anmeldeinformationen verwenden. Auf diese Weise können die Ansichten die Benutzer-ID abrufen und sie der Mandanten-ID zuordnen, um die Ansicht dieses Benutzers anzuzeigen. Die meisten PHP-Frameworks sind jedoch sehr statisch, wenn es um Datenbankverbindungen geht (in Textkonfigurationsdateien gespeichert). Sie scheinen sich zu widersprechen.

Weiß jemand: a) wie CodeIgniter dies anmutig behandeln? b) ein anderes PHP-Framework, das könnte?

Antwort

0

Zend-Framework.

+0

http://framework.zend.com/manual/de/zend.db.adapter.html Also schaue ich mir diese Komponente an, und ich frage mich * wie * eine db-Verbindung mit per zu implementieren - Benutzeranmeldeinformationen, um die im obigen Blogpost-Link beschriebene Strategie zu erreichen. Vergib mir, wenn es für diejenigen, die es wissen, offensichtlich ist, aber ich kämpfe mit diesem Aspekt. –

+0

Dieser Artikel erwähnt keine mandantenfähigen Datenbanken –

1

Es gibt ein Thema darüber in den Code Igniter-Foren zu sprechen.

http://codeigniter.com/forums/viewthread/165227/#846845

Es ist wie Sie in der Konfigurationsdatei, dann erzeugen Sie einen Config-Array für eine neue Verbindung für einen Benutzer basierend auf Informationen, dass Benutzer DB einrichten Benutzer DB als Haupt-Datenbank aussieht. Also, ich denke, Sie müssten zumindest den DB-Namen in der Benutzerdatenbank speichern.

Nicht sicher, wie gut das funktioniert, da ich noch keine Gelegenheit hatte, es auszuprobieren.

Entschuldigung, wenn das nicht ganz das ist, was Sie gesucht haben, aber es sollte Ihnen eine Vorstellung von einem Code Igniter Ansatz geben.