Die selbe Anwendung auf dem selben Server mehreren Anwendern zur Verfügung stellen

martesdr

Grünschnabel
Hallo,

ich würde gerne eine Anwendung auf dem gleichen Server mehreren Nutzern zur Verfügung stellen. Diese Anwendung sieht allerdings so aus, dass jeder dieser Nutzer wiederum Accounts und andere Daten in die Datenbank eintragen kann. Dieser soll natürlich nicht die Daten eines anderen Nutzers sehen.
Wie kann ich das machen, dass bspw. Nutzer A auf beispiel.de/A und Nutzer B auf beispiel.de/B geht und dann die gleiche Anwendung zu Gesicht bekommen, jedoch nur ihre Daten sehen, wenn sie sich einloggen.
Kann man das über die selbe Datenbank laufen lassen, oder ist Performance-technisch nicht zu empfehlen? Ich habe mir überlegt, jedem Account noch eine Haupt-ID oder wie man die nennen mag zuzuweisen und auch dass die anderen Daten diese Haupt-ID drin haben. Wenn jetzt Nutzer A sich einloggt, läuft die ganze Anwendung, hat aber immer in den SQL-Requests ein WHERE Haupt-ID = A drin...
Reintheoretisch müsste das ja funktionieren, ich frage mich nur, ob diese Lösung empfehlenswert wert oder sollte man lieber für jeden Nutzer neue Tabellen anlegen mit nem anderen prefix? Da wäre dann das Problem, dass wenn man die Anwendung weiterentwickeln will und etwas an der Tabelle ändern will, ziemlich viele Tabellen ändern muss.

Ich freue mich auf Antworten! :)
 
Hallo,
so wie du es beschrieben hast, ist es schon richtig.

Du hast beispielsweise eine Tabelle names "db_user". Dort drin sind alle User eingetragen:
Code:
ID | NAME | PASSWORT | WOHNORT
Für jeden Benutzer wird dann eine eigene Eintrag erstellt.

Du willst sicher soetwas wie ein "Kontrollzentrum" machen.

Was dir sicher helfen wird:
http://tut.php-quake.net/de/login.html

Mit diesem Tutorial kannst du Benutzer registrieren lassen - einloggen - und sie haben einen Internen Bereich, also sowas wie ein Kontrollzentrum.

Viele Grüße
 
Hi,
vielen Dank für deine Antwort, aber ich glaube du hast mich falsch verstanden.
Ich habe schon ein Loginsystem, wo es auch einen Administrator gibt, der die User verwalten will. Jetzt möchte ich aber die selbe Anwendung mehreren Personen zur Verfügung stellen, die nichts miteinander zu tun haben. Es gibt also Personengruppe A, die auch einen Administrator A hat, der A-User verwalten kann. Das selbe mit B, C usw.
Loggt sich also Administrator A ein, kann er Datensätze hinzufügen bearbeiten usw, die aber natürlich nur A-User zu Gesicht bekommen. Dafür müssen sie natürlich eingeloggt sein.
Die Frage ist jetzt, ob das alles über eine Datenbank und die selben Tabellen laufen soll oder über verschiedene. Bei der selben würde dann der die tabelle user so aussehen:
Haupt-ID | ID | name | gruppe | ...
A | 1 | tom | admin
A | 2 | karl | user
B | 3 | frank | admin
B | 4 | hans | user
Und so weiter... Wenn sich jetzt tom mit der ID 1 einloggt und sich die User listen lässt, soll er natürlich auch nur sich und karl mit ID 2 sehen; die mit der Haupt-ID B natürlich nicht. Auch wenn er jetzt andere Datensätze erstellt werden die immer diese Haupt-ID tragen, damit wenn er z.b. seine Aufgabe listen will auch nur die sieht, die er erstellt hat.
Das Problem ist nicht, das zu programmieren, ich frage mich nur, ob das der beste Weg ist?
 
Solange das nicht übermässig viele HauptIDs werden geht das vermutlich am besten, wenn du statt einer Spalte für die HauptID je eine Spalte machst, etwa so:

ID|name|gruppe|Zugriff_A|Zugriff_B|Zugriff_C|usw.

Das können einfache BOOL (tiny int) sein, mehr als 0 oder 1 brauchts nicht, dann kannst du jedem User einzeln Admin-Rechte geben, sogar unabhängig davon zu welcher Gruppe er gehört, auch dem selben User mehrere Rechte, sprich General-Admin.

1|tom|A|1|0|0|usw.
2|karl|A|0|0|0|usw.
3|frank|B|1|1|1|usw.
 
Zurück