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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 88154
Url: https://administrator.de/forum/unterstuetzung-bei-db-struktur-benoetigt-mysql-bzw-mssql-88154.html
Ausgedruckt am: 30.04.2025 um 05:04 Uhr
5 Kommentare
Neuester Kommentar
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
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
Moin JBG,
öö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
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