Hey,
ich habe erstmal eine Frage zu meinem grundsätzlichen Datenbank Design. Und zwar geht es hier jetzt mal um eine rechte Verwaltung für Module. Dafür habe ich 3 tabellen vorgesehen:
Tabelle module:
Tabelle: right_groups
Tabelle: module_rights
Also Taballe 1 enthält alle Module, Tabelle 2 die verschiedenen Rechte gruppen und Tabelle 3 die beziehungen. Nun erstmal die Frage ob das ganze so sinn macht. Meiner auffassung nach müsste dies ja im Sinne der Normalform sein, wenn ich da alles richtig verstanden habe. Korrigiert mich bitte wenn ich hier schon falsch liege.
So nun meine 2te Frage:
Wenn ich jetzt später abfragen möchte welche "power" ein Modul benötigt kann ich dieses ja in 3 Abfragen machen. Nehmen wir mal folgende Daten an:
Dafür sähen die 3 Abfragen ja dann so aus:
Ich frag mich jetzt ob das auch in 1 Abfrage möglich ist und wenn ja wie? Geht das über JOINS oder vielleicht über SubSelect? Kenne mich mit beiden nicht so aus, habe zwar zu Joins ein bischen was gelesen, allerdings ist mir der Aufbau immernoch nicht ganz klar. Wenn jemand dazu ein Beispiel geben könnte wie das in diesem Fall aussehen müsste wäre ich sehr dankbar.
Weil ich denke mal eine Abfrage ist performanter wie 3 nacheinander abzuschicken?
Wäre dankbar wenn da mal jemand drüber schauen könnte und mich da aufklären könnte.
lg 2Bad4You
ich habe erstmal eine Frage zu meinem grundsätzlichen Datenbank Design. Und zwar geht es hier jetzt mal um eine rechte Verwaltung für Module. Dafür habe ich 3 tabellen vorgesehen:
Tabelle module:
Code:
Create table module ( `id` int(3) PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) NOT NULL, `discription` text NOT NULL ) Engine = Inno DB
Code:
CREATE TABLE right_groups ( `id` int(3) PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) NOT NULL, `discription` text NOT NULL, `power` varchar(10) NOT NULL ) Engine = Inno DB
Code:
CREATE TABLE module_rights( `moduleid` int(3), `right_groupid` int(3) FOREIGN KEY (`moduleid`) REFERENCES module (`id`), FOREIGN KEY (`right_groupid`) REFERENCES right_groups (`id`) ) Engine = Inno DB
So nun meine 2te Frage:
Wenn ich jetzt später abfragen möchte welche "power" ein Modul benötigt kann ich dieses ja in 3 Abfragen machen. Nehmen wir mal folgende Daten an:
Code:
INSERT INTO module (`id`, `name`, `discription`) VALUES ('1', 'news', 'news modul') INSERT INTO right_groups (`id`, `name`, `discription`, `power`) VALUES ('1', 'Admin', 'Admin Rechte', '100') INSERT INTO module_rights (`modulid`, `right_groupid`) VALUES ('1', '1')
Code:
SELECT id FROM module WHERE name = 'news' SELECT right_groupid FROM module_rights WHERE moduleid = 'id_aus1_abfrage'; SELECT power FROM right_groups WHERE id = 'id_aus2_abfrage'
Weil ich denke mal eine Abfrage ist performanter wie 3 nacheinander abzuschicken?
Wäre dankbar wenn da mal jemand drüber schauen könnte und mich da aufklären könnte.
lg 2Bad4You
Kommentar