Frage zu Kundenverwaltung

alex130

Erfahrenes Mitglied
Hallo,
ich hab eine Frage und zwar hab ich für meinen Vater eine Kundenverwaltung gemacht.
Nun brauch ich eine Funktion, "Gruppen", das heißt, dass der Admin Gruppen erstellen und bearbeiten kann...
Und dann soll man User einer Gruppe zuweisen können. Dann soll es noch eine Option geben, und zwar
ob der User nur seine eingegebenen Kunden sehen kann oder alle aus seiner Gruppe.
Ich hoffe ihr habt es soweit verstanden.
Nun weiß ich aber nicht wie ich das umsetzen soll, ich dachte an sowas:

tablle "groups"
- id
- name

tabelle "user" (bereits vorhanden)
- group_id
- can_see_all_of_group (ja ich weiß ein bisschen lang ^^, aber is ja nur ein bsp.)


Nun weiß ich aber nicht, was ich dann bei den Kunden in die Tabelle schreiben muss, ob es da bloß reicht,
die Userid in die Tabelle zu schreiben? Wenn ja dann schon mein nächstes Problem wie lese ich nur die
Kunden aus, die von der eigenen GRuppe, bzw. vom User sind?
Ich hoffe ihr habt verstaden was ich brauche und könnt mir helfen.
Danke Alex
 
ich würds evtl so machen:

Tabelle Gruppen:

gruppen_id | gruppen_name | benutzer_id


Tabelle Benutzer

benutzer_id | name | ....


Tabelle Kunden

kunden__id | name |... | ersteller (= benutzer_id)


somit kannst du deine geforderten anforderungen umsetzen
 
Nun brauch ich eine Funktion, "Gruppen", das heißt, dass der Admin Gruppen erstellen und bearbeiten kann...
Und dann soll man User einer Gruppe zuweisen können. Dann soll es noch eine Option geben, und zwar
ob der User nur seine eingegebenen Kunden sehen kann oder alle aus seiner Gruppe.

Das ist Grundlagen in der Datenbankentwicklung am besten du erstellt dir mal ein Diagram mit den Beziehungen.

siehe auch dazu:
http://reeg.junetz.de/DSP/node7.html
http://www.little-idiot.de/mysql/mysql-254.html
http://www.dfpug.de/konf\konf_1998\07_c_s\d_sql2/d_sql2.htm

Zuerst überleg dir mal welche Tabellen du alle Brauchst.Dann in welcher Beziehung sie zueinander stehen.

Hier mal ein Ansatz:
Du hast Gruppen also 1 Tabelle für Gruppen.Dann gibs User also auch ein Tabelle für User.

User steht zu Gruppen in einer 1/n Beziehung.
Da ja mehrer User einer Gruppe angehören können, aber nicht mehrer Gruppen einen User

So das sollte mal als Ansatz reichen für den Rest mußt du noch machen.

Mfg Splasch
 
Zuletzt bearbeitet:
Hi
Danke für die Antworten...
Den Tabellenaufbau hab ich mir ja schon überlegt, aber ich weiß nicht, ob das richtig ist.
Meine Tabellen würden dann z.B. so aussehen:

Code:
- groups:
	id	name
	1	Büro

- user:
	userid	username    groupid	 can_see_all_of_group
	1	  alex130	1		1
	2	  test		   1		   0

- privatkunden:
	id	kundenfelder...	userid
	1	...		      1

LG Alex
 
Ich würd die Berechtigungen in die Gruppen Tabelle mit reinehem.

gruppen:
-id
-name
-Berechtigung

user:
-userid
-username
-f_gruppe (Fremdschlüssel aus Gruppen Tabelle)

privatkunden:
-id
-kundenfelder
f_userid (Fremdschlüssel aus user Tabelle)


Mfg Splasch
 
Dann müsste ich aber jede Gruppe zweimal erstellen, da es in jeder Gruppe User geben soll, die in der selben Gruppe sein sollen, aber nicht alle sollen alle Kunden aus der Gruppe sehen können...
Aber das wäre auch egal... nur noch eine Frage kannst du mir vielleicht noch ein Beispiel geben, wie die Datenbank Abfrage dann aussehen müsste?
Danke
 
Dann müsste ich aber jede Gruppe zweimal erstellen, da es in jeder Gruppe User geben soll, die in der selben Gruppe sein sollen, aber nicht alle sollen alle Kunden aus der Gruppe sehen können...

Du verwirrt mich nun ein wenig. Hab das als Gruppenberechtigung angesehen.Da ist klar das alle die in der selben Gruppe sind auch die gleichen Rechte haben.

Gruppe Admin und soweiter.Du brauchst ja nur eine andere Gruppenberechtigung erstellen für andere Rechte.
Den Jeder User hat eh seinen eigenen Kundenstam zu gewiessen und wenn es nun Admingruppen gibt die alles sehen dann passt das auch so.
Und dann gibt eben Gruppen die nur Ihr Kunden sehen.

Die Abfrage müßte dann in etwa so aussehen:

Je nach dem was man eben abfragen will hier ein Bsp.

SELECT berechtigung FROM user,gruppen WHERE user.f_gruppe=gruppen.id AND user.userid='1';

Oder Alle kunden eines User:

SELECT kundenfelder FROM privatkunden,user WHERE user.userid=privatkunden.f_userid AND user.userid='2';

Oder das ganze mit einer Berechtigungs abfrage der alles sehen darf

SELECT kundenfelder FROM privatkunden,user,gruppen WHERE gruppen.id=user.userid AND gruppen.Berechtigung="10"; (Level Stufe der berechtigung)

Mfg Splasch
 
Zuletzt bearbeitet:
Hi
Ich glaube ich habe mich falscha usgedrückt und zwar brauche ich das so, dass ich z.B. eine Gruppe hab "Büro 1", dort gibt es z.B. 4 Mitarbeiter, die im Büro arbeiten, die können alle Kunden aus dieser Gruppe sehen, dann gibt es noch "Außendienst Mitarbeiter", diese sind auch in der selben Gruppe, können aber nur Ihre eigenen Kunden sehen.
Verstehst du was ich meine?
lg Alex
 
Verstehe.

Also Tabellen

Mitarbeiter
Gruppen
Kunden
Berechtigungen

Zwischen Mitarbeiter und Gruppen n/1 Beziehung
Zwischen Gruppen und Kunden n/m Beziehung
Zwischen Mitarbeiter und Berechtigung n/1 Beziehung

--------------------------------------------------
Daraus folg das die Tabellen das in etwa so ausschauen:

Mitarbeiter:
-id
-name
-f_gruppenid ( Fremdschlüssel)

Gruppen:
-id
-name

Berechtigungen:
-id
-level
-f_Mitarbeiterid (Fremdschlüssel)

Kunden:
-id
-name
-f_Mitarbeiterid (Fremdschlüssel)

Gruppen_kunden:
-f_gruppenid (Primarykey)
-f_kundenid (Primarykey)


Sollte es dann auch noch mehre Mitarbeiter geben die den selben kunden betreuen dann brauchste daraus nur eine n/m Beziehung machen.

Mfg Splasch
 
Zuletzt bearbeitet:
Hi
Also ich hab mich jetzt doch für deine Erste Methode entschieden, da diese doch um einiges einfacher umzusetzen ist...
Ich werde dass mal versuchen und hoffe dass du mir nochmal hilfst, falls ich irgendwo probleme hab.
Danke
 
Zurück