php.de

Zurück   php.de > Webentwicklung > Software-Design

Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.06.2010, 14:14  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard Mandantenverwaltung - Meine eigene Idee

Meine aktuelle Webapplikation soll Mandanten fähig sein unter berücksichtigung folgender Punkte:

1. Gemeinsames nutzen der Systemdateien. ( Wartungsfreundlichkeit )
2. Login via E-Mail Adresse ( Der gleiche Benutzer kann aber bei mehreren Mandanten registriert sein )
3. Eigene Datenbank für jeden Mandant. ( Backup/Restor Problematik )
4. Benutzerdateien für jeden Mandant seperat gespeichert in seinem Verzeichnis.

Ich habe mir das wie folgt überlegt:

Mandant A ist zum Beispiel Muster AG
Mandant B ist zum Beispiel Peter GmbH

Mandant A ruft die Seite via:

https://muster.meineapp.com

Mandant B ruft die Seite via:

https://peter.meineapp.com

auf.

Soweit so gut.

Die Struktur auf dem Server sieht wie folgt aus:

HST-meineapp/
HST-peter-meineapp/
HSt-meier-meineapp/

Im Ordner der jeweiligen Subdomain befindet sich eine PHP Datei wie folgt:

PHP-Code:
<?PHP
session_start
();
include(
'../HST-meineapp/dispatcher.php');
?>
Hinter der dispatcher.php befinden sich div. Klassen & Dateien die dann für die eigentliche Anwendung geladen werden, sprich ich habe alle "System-PHP-Dateien" nur einmal.

Gibts einen Fix, dann braucht man nur 1x die entsprechende Datei zu erstetzen anstelle von 100x bei jedem Mandanten einzeln.

Die Datenbankstruktur ( vereinfacht dargestellt ) sieht wie folgt aus:

Master DB:

meineapp

Tabelle:

meineapp_customers
ID | Domain
1 | muster
2 | peter

Eine Funktion welche im dispatcher.php aufgerufen wird subtrahiert von der URL ( als. Beispiel https://muster.meineapp.com/de/proje...s-projekt.html ) die Subdomain.

Danach wird die gefilterte Subdomain "muster" in der Master Datenbank in der Tabelle meineapp_customers gesucht. Wenn vorhanden wird die ID zurückgegeben und in der Session der Datenbankname gespeichert.

meineapp_customer_db_1 ( Datenbank der Muster AG )
meineapp_customer_db_2 ( Datenbank der Peter GmbH )

Somit hat jeder Mandant seine eigene Datenbank sowie alle Dateien in seinem eigenen Verzeichnis auf dem Server

HST-meier-meineapp/uploads z.Bsp.

Durch diese Struktur haben wir auch die Möglichkeit einzelne Mandanten anzupassen wenn Sonderwünsche auftreten in dem wir z.Bsp. bevor wir die Datei:

HST-meineapp/include/printer/report.php

prüfen ob es eine

HSt-muster-meineapp/include/printer/report.php

gibt, und wenn ja soll diese eingebunden werden.

Somit können wir eine komplette Dynamik realisieren für jeden Mandant in dem wir einfach nur eine Subdomain setzen und eine Zentrale dispatcher.php einladen.

Nun würde ich gerne mal eure Meinungen zu diesem "Design" wissen damit ich meinen Ansatz verbessern kann.

Meine idee war ursprünglich lediglich wie ich es realisieren kann dass man beim Login nur Benutzer + Kennwort braucht, ohnen noch eine Kundennummer eingeben zu müssen.

Für mich sind damit folgende Punkte abgedeckt:

1. Patchen nur pro Server 1x notwendig.
2. Sicherung von Mandanten einzeln und unkompliziert möglich.
3. Restore Möglichkeit direkt ohne Software zu schreiben.
4. Mehrsprachigkeit kann zentral erweitert werden.
5. Benutzerdefinierte Dateien includen anstelle der DEFAULT System PHP-Datei
6. Login mit der gleichen E-Mail Adresse möglich bei verschiedenen Mandanten.

Hoffe es ist verständlich, ansonsten bitte ich um Nachbohren

Grüsse

eXe
da.eXecutoR ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.06.2010, 19:02  
Erfahrener Benutzer
 
Registriert seit: 30.07.2008
Beiträge: 1.169
PHP-Kenntnisse:
Fortgeschritten
xm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphärexm22 sorgt für eine eindrucksvolle Atmosphäre
Standard

Und jetzt?
xm22 ist offline   Mit Zitat antworten
Alt 07.06.2010, 19:50  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Warum bekommen die Applikationen unterschiedliche Ordner? Mandantenfähigkeit heißt ja genau das zu vermeiden! Eine mandantenfähige Anwendung kann *durch Konfiguration* und nicht durch Kopieren oder Schaffung neuer Ordnerstrukturen mehrere Mandaten verwalten. Sprich dein Mandant parametrisiert die Anwendung, er ist nicht Platzhaltervariable für irgendwelche Ordnernamen. Zumindest würde ich das für eine unsaubere Implementierung/Interpretation einer mandantenfähigen Anwendung ansehen.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online   Mit Zitat antworten
Alt 08.06.2010, 12:28  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Nicht die Applikationen bekommen unterschiedliche Ordner, sondern jeder Kunde seinen eigenen. Somit sind die Dateien von einander getrennt und können ohne weiteres komplett gesichert werden ( zum Beispiel zum Kunden ) ohne dass ich dafür ein Skript schreiben muss.

Wie würdest du denn meine Ausgangssituation lösen?

1. Patchen nur pro Server 1x notwendig.
2. Sicherung von Mandanten einzeln und unkompliziert möglich.
3. Restore Möglichkeit direkt ohne Software zu schreiben.
4. Mehrsprachigkeit kann zentral erweitert werden.
5. Benutzerdefinierte Dateien includen anstelle der DEFAULT System PHP-Datei
6. Login mit der gleichen E-Mail Adresse möglich bei verschiedenen Mandanten.

Weitere Meinungen zu meinem Konzept?

Gruss

eXe
da.eXecutoR ist offline   Mit Zitat antworten
Alt 08.06.2010, 13:32  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Welche Ansätze hast du denn bisher? Das Software-Design-Forum ist eigentlich dazu gedacht, vorhandene Ansätze zu diskutieren und keine Architektur-Beratung from the scratch durchzuführen...
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 08.06.2010, 17:32  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dr.e. Beitrag anzeigen
Welche Ansätze hast du denn bisher? Das Software-Design-Forum ist eigentlich dazu gedacht, vorhandene Ansätze zu diskutieren und keine Architektur-Beratung from the scratch durchzuführen...
Danke für deine Antwort. Es ist richtig dass es sich zur Zeit noch um die Architektur handelt, aber läuft dies nicht ins Software-Design? Denn das ist ja schliesslich das Resultat dessen.

Wenn ich hier am falschen Ort gepostet habe bitte ich um Verschiebung.

Ich habe zur Zeit die beta Klasse für mod_rewrite ( Zuweisung und Abstraktion der Client Domains ).

Gruss

eXe
da.eXecutoR ist offline   Mit Zitat antworten
Alt 08.06.2010, 17:38  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Die Betonung liegt auf „from the scratch“. In diesem Forum solltest Du ansatzweise gängige Prinzipien für solche Anwendungsfälle kennen, um sie in Bezug auf Deine spezifische Anwendung diskutieren zu können.

„Wie macht man eigentlich“ gehört eigentlich in keines unserer Foren.

http://www.php.de/php-einsteiger/675...sumfragen.html
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 08.06.2010, 17:58  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Hallo nikosch

Ich habe ja bereits mein "Software-Design" / "Architektur" beschrieben. Mir gehts nur darum von jemandem der schon etwas Erfahrung hat zu wissen ob es komplett verkehrt ist aus Gründen die sich mir noch nicht offenbart haben oder ob ich mal "go ahead" gehen kann und loslegen.

Es ist keines Falls zu vergleichen mit einem Post
da.eXecutoR ist offline   Mit Zitat antworten
Alt 08.06.2010, 18:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Naja, Du redest aber hier von Datenbankstrukturen und Ordnernamen, die in der Konzeption überhaupt nichts verloren haben.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 08.06.2010, 18:21  
Erfahrener Benutzer
 
Registriert seit: 08.08.2009
Beiträge: 195
PHP-Kenntnisse:
Fortgeschritten
da.eXecutoR befindet sich auf einem aufstrebenden Ast
Standard

Wollte nur mein Konzept verständlich darstellen. Sollte nicht heissen, dass ich jetzt hier von jemandem erwarte wie ich das jetzt umsetzen muss.

Aber wenn keiner was dazu beitragen kann, schliesst ihr den Thread eben.

Grüsse & schönen Abend

eXe
da.eXecutoR ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
merkwürdige Idee - Dateiübergabe JBJHJM PHP Tipps 2010 7 17.06.2010 22:03
Idee für Online Status andere Personen?? magicdj PHP Tipps 2010 9 12.03.2010 19:27
Datenbank Design (Idee / Frage) suche007 Datenbanken 1 30.07.2009 13:38
Scriptsuche Community firndslist? wie speichern?? Idee? PhilipKupsik Scriptbörse 6 19.05.2009 23:26
dtaus-Modul bringt einen foreach-Fehler...Idee? BartTheDevil89 PHP Tipps 2009 3 01.01.2009 16:01
Idee oder Mithilfe in Projekt gesucht Shrek2oo6 Beitragsarchiv 2 26.12.2008 18:41
Was hält ihr von der Idee...? halskrause Beitragsarchiv 1 22.12.2008 16:42
Idee für Sessionschutz eines Games... BartTheDevil89 PHP Tipps 2008 5 24.09.2007 00:14
Terminplan...idee zu umständlich? Aris Sung PHP Tipps 2007 1 14.12.2005 17:40
Erstmal nur eine Idee blinkster.de Beitragsarchiv 2 04.12.2005 15:36
Hat einer eine Idee (wg. Datumsauswahl im Formular) PHP Tipps 2005 4 14.04.2005 17:02
[Browsergame]-Neue Idee Beitragsarchiv 17 10.03.2005 03:11
Idee gesucht PHP Tipps 2004-2 4 09.12.2004 08:15
[Erledigt] Idee: Benchmark-Script schreiben um Webhoster zu vergleichen PHP-Fortgeschrittene 3 12.10.2004 18:27
Usermanagement: Idee? PHP-Fortgeschrittene 21 30.06.2004 15:55

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mandantenfähigkeit datenbank, mandantenverwaltung software, mandantenverwaltung, datenbank mandantenfähig, was heisst mandantenfähig, idee für php programm, software mandantenfähig, was heißt mandantenfähig, software mandantenverwaltung, mandantenfähige software, mandantenfähig software, mandantenfähigkeit datenbank was heißt, mandantenfähige datenbankstruktur, php mandantenverwaltung, php mandantenfähig, mandantenfähiges application framework, was bedeutet mandantenfähig, php mandant, mandantenfähigkeit datenbank tabelle, mandantenfähiges system design

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:39 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum