johnnybgoode
Goto Top

Unterstützung bei DB-Struktur benötigt (MySQL bzw. MSSQL)

Benötige Unterstützung zur Erstellung einer DB-Struktur in MySQL bzw. MSSQL

Hallihallo!

Ich habe eine kleine Aufgabe vor mir, die etwas schwieriger zu sein scheint, als ich bislang dachte. Evt. könnte mir jemand von Euch unter die Arme greifen?

Ich möchte ein Berechtigungskonzept erstellen und auch gleich umsetzen. Allerdings ist dies etwas kniffelig:

9 Personen sollen unterschiedliche Berechtigungen auf unterschiedliche Tabellen erhalten.

Es gibt 2 Unternehmensbereiche. In Bereich A gibt es 4 Regionen, in Bereich B gibt es 6.
In Bereich A hat Region 1 genau 6 Distrikte, Region 2 hat 7 Distrikte, Region 3 hat 6 Distrikte und Region 4 hat wieder 7 Distrikte.
In Bereich B ist Region = Distrikt.

Auf jeden dieser einzelnen Distrikte müssen die 9 Personen verteilt werden. D.h. bspw. soll Person X Schreibzugriff auf [Bereich A, Region 2, Distrikt 3] sowie [Bereich B, Region 1, Distrikt 1] erhalten. Auf alle anderen Regionen und Distrikte aber nur Lesezugriff.

Wie kann ich das realisieren? Leider habe ich momentan einen großen Knoten im Hirn - zumindest komme ich nicht voran. Das liegt aber evt. auch daran, dass ich im Verknüpfen von Tabellen nicht allzu fit bin.

Die nächste Problematik ist, dass das Ganze bislang in MySQL laufen sollte, demnächst aber zu MSSQL migiriert werden soll.

Das Webfrontend wird übrigens mit extJS realisiert.

Wäre toll, wenn mir jemand helfen könnte.

Gruss und Danke!
JBG

Content-Key: 88154

Url: https://administrator.de/contentid/88154

Printed on: April 25, 2024 at 06:04 o'clock

Member: Biber
Biber May 21, 2008 at 10:52:02 (UTC)
Goto Top
Moin JohnnyBGoode,

könntest Du bitte die DDL-Skripte der vorhandenen Tabellen posten?

dann brauchen wir uns hier keine Phantasienamen ausdenken.

Grüße
Biber
Member: JohnnyBGoode
JohnnyBGoode May 21, 2008 at 12:19:46 (UTC)
Goto Top
Hallo Biber,

die Tabellen bestehen ja leider noch nicht. Die Zuordnungen, die ich beschrieben habe, sind technisch noch nicht vorhanden.

Und ganz davon abgesehen (und bitte verzeih' mir dies): was sind DDL Skripte? face-smile
<-- EDIT: hab gegoogled - bin schon im bilde =)

JBG

Moin JohnnyBGoode

könntest Du bitte die DDL-Skripte der
vorhandenen Tabellen posten?

dann brauchen wir uns hier keine
Phantasienamen ausdenken.

Grüße
Biber
Member: Biber
Biber May 21, 2008 at 18:48:25 (UTC)
Goto Top
Moin johnnyBGoode,

eine erste gedankliche noch ziemlich abstrakte Skizze wäre:

Distrikte_Stamm
DistrictID long PK
DistrictAttribute...(Name, Größe, Telefonvorwahl, AnzahlEinwohner)
RegionID long ForeignKey
--- [Relation: Distrikt gehört zu genau einer Region;
---- Eine Region hat 1 oder mehr Distrikte]


Region_Stamm
RegionID long PK
RegionAttribute (Name, Ansprechpartner, ....)


Personen_Stamm
PersonID long PK]
PersonAttribute (Name, Vorname, sexuelle Hauptausrichtung...]


RechteZuordnung [Relation Personen auf Regionen]

PersonID long [Foreignkey ->Personen_Stamm und Teil des PK]
RegionID long [Foreignkey ->Region_Stamm und Teil des PK]
Gültig_von Date Default heute -Zeitpunkt des Anlegens [Teil des PK]
Rechte ENUM [ Wertebereich 0,1,2)
Gültig_bis Date default 31.12.2099


Der Wertebereich des Feldes "Rechte" sollte eigentlich die Werte 1 (darf Lesen) und 2 (darf Schreiben/bearbeiten) enthalten.

Unterstellung: das Recht zu "Schreiben" beinhaltet das Recht zu "Lesen"
->es gibt keinen, der nur "Inserten" darf, ohne die vorhandenen Sätze zu lesen

Zweite Unterstellung: das Vorsehen eines Wertes "0 = kein Recht " kann in der Praxis sinnvoll sein.


Weiterhin würde ich (siehe oben) bei Rechten eine Gültigkeit von-Bis mit vorsehen und in den Primarykey aufnehmen.
Denn wenn diese Rechteverwaltung ja letzten Endes eine Gebietsverantwortung widerspiegelt,
dann können auch Fragen wie "Wer HATTE denn letztes Jahr im August die Rechte zur Bearbeitung?" kommen oder auch die befristete Rechtevergabe (Vertretung, Urlaub)

Die Enum-Werte 0,1,2 lassen sich naürlich erweitern auf "3 Hat das Recht, Lese/Schreibrechte WEITERZUGEBEN" etc.

Grüße
Biber
Member: JohnnyBGoode
JohnnyBGoode May 26, 2008 at 09:17:16 (UTC)
Goto Top
Hallo Biber,

leider war ich die Tage unterwegs. Daher erst jetzt meine Antwort:

Vielen Dank erst einmal!
Ich denke, ich verstehe den Ansatz (halbwegs). Wie könnte so etwas aussehen? Leider bin ich nicht wirklich ein Entwickler.

Was mir bspw. vorschwebt ist eine DropDown Liste in der Eingabemaske.
1. Wähle den Unternehmensbereich
2. In einer zweiten DropDown Liste werden automatisch die entsprechenden Regionen geladen. Man wählt eine...
3. In einer dritten Liste werden die Distrikte geladen.

Wie erstelle ich dazu die Verknüpfungen? Ich konnte leider bislang noch kein gutes Tutorial dazu finden, bzw. lerne so etwas schneller, wenn ich Beispiele sehe.

LG,
JBG
Member: Biber
Biber May 26, 2008 at 20:05:44 (UTC)
Goto Top
Moin JBG,

Was mir bspw. vorschwebt ist eine DropDown Liste in der Eingabemaske.

ööhmm... sagen wir so - die gute Nachricht:
Das ergibt sich dann von allein.. sozusagen unausweichlich.
Aber erstmal müssen wir jetzt von den Telefonkritzeleien oben zu einer bei Euch passenden konkreten Tabellenstruktur kommen.

Du bist dran mit Input abfragen von Deinen Hansels:
- welche Attribute gibt es mit welchen Datentypen und -längen, welchen Formaten, welchen Plausiprüfungen?
Wo kommen die Daten her - lassen sich welche importieren?
Müssen bestimmte Fremdschlüssel importiert werden, damit Du keine neue Insel schaffst?
Wie ist das Datenvolumen, wie muss die Verfügbarkeit sein, hängen 3 oder 300 oder 30000 User dran und wieviele Sprachen sprechen die etc etc....

Auf so ganz abstraktem Niveau können wir kein DropDown ins Nirwana stellen...

Zum Thema Tutorial mySQL: Hey, das ist das dritthäufigste Suchergebnis im Internet nach Viagra und Münte-in-Leder.

mySQl ist mit Abstand die am End-User-und-Einsteigerfreundlichste professionell Datenbank des Universums.
Da findest Du was. Auf deutsch und verständlich.

Grüße
Biber