25. april 2011 - 23:39Der er
8 kommentarer og 1 løsning
hjælp til member-gruppe styring
Hej jeg sider og skal lave et lille side til mig selv og en ven..
og her var det så meninge at man skal tilmelde sig en gruppe og der med kan være medlem og admin m.m men jeg kan ikke helt finde ud af hvordan jeg sætter min sql sammen
Min ide (Som ikke virker)
SELECT *,(SELECT GruppeID FROM Member_Access WHERE MemberID=Member.MemberID) as AccessID FROM `Member` WHERE 1
her var det min ide at jeg fik brugers oplysninger og et feldt ved navn AccessID som skulle se sådan ud 4,2,99 som jeg så kun bruge vider men det virker ikke er der en der har en ide eller en løsning ?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Slettet bruger
26. april 2011 - 00:11#1
Du kan ikke bare stange en SELECT ud, og regne med at vi kan se hvad der er galt, uden at kende til dine tabeller..
Jeg ville bruge 3 tabeller til det - basalt set:
Personer ------------- personID navn .. .
Grupper ------------ gruppeID navn admin (et personID) .. .
Medlemsskab -------------------- gruppeID personID (eller et andet gruppeID = grupper i grupper!)
Synes godt om
Slettet bruger
26. april 2011 - 02:57#2
Hej Tom
Ja jeg har også tre tabler som du anføre glemte jeg at fortælle
min ide var bare at få gruppeide ud fra medlem id.. ved at sætte de to sammen, men der gik det lidt galt..
Jeg gaetter paa at 'brugid' som du naevner i #2 er det samme som MemberID og at du vil have brugeroplysninger plus GruppeID for et medlem med en bestemt MemberID.
I saa fald kunne din forespoergsel vaere, for eksempel for medlemmet med MemberID = 7, saaledes:
SELECT m.*, ma.GruppeID FROM Member m JOIN Member_Access ma ON m.MemberID = ma.MemberID WHERE m.MemberID = 7
(For at goere forespoergslen kortere har jeg givet tabellerne aliaser - Member kalder jeg m og Member_Access kalder jeg ma.)
Hvis det ikke var saadan spoergsmaalet skulle forstaas, saa maa du forklare naermere.
Synes godt om
Slettet bruger
26. april 2011 - 09:32#4
Hej Christian
Tak det var dog ikke helt den stil jeg have i tanker men tro godt det kan bruges til at få det data jeg skal bruge frem..
Det var meninge at jeg skulle får alle data fra gruppe og så et feldt fra Member_Access.AccessType så jeg kan se hvad bruger har af retigher i denne gruppe.. men jeg vil da arbejder vider med den du gav mig ved minder du lige kan give mig det jeg søger
Member ============== MemberID MemberType (User,Admin) MemberNavn
Gruppe ============== GruppeID GruppeType (Open,Hide,Close) GruppeNavn
Jeg vil gerne give dig det du soeger, hvis jeg kan finde ud af hvad det er, men jeg er forvirret (det kan vaere det er mig der er tumpet idag.) Fortael mig lidt mere:
Er en bruger det samme som et medlem og er en bruger/medlem identificeret ved MemberID?
Kan et medlem vaere med i flere grupper og med forskellige access typer saaledes at medlem 7 er med i gruppe A som User og er med i gruppe B som Admin samtidig med at medlem 8 er med i gruppe A som Admin og er med i gruppe C som User?
Og hvilken oplysning starter din forespoergsel med og hvilke oplysninger vil du have ud?
Er det saaledes at du for et bestemt medlem vil finde alle oplysninger om alle grupper medlemmer er med i og for hver gruppe hvilken access type? I saa fald skulle denne forespoergsel virke, for eksempel for medlem 7:
SELECT m.MemberID, g.*, a.AccessType FROM Member m JOIN Member_Access a ON m.MemberID = a.MemberID JOIN Gruppe g ON a.GruppeID = g.GruppeID WHERE m.MemberID = 7
Saa faar du, for eksempel:
MemberID GruppeID GruppeType GruppeNavn AccessType 7 1 Open GruppeA User 7 2 Hide GruppeB Admin
Eller er det saaledes at du for en bestemt gruppe vil finde oplysninger om alle medlemmer og hvilken access type hvert medlem har? I saa fald skulle denne forespoergsel virke, for eksempel for Gruppe A
SELECT g.GruppeID, g.GruppeType, g.GruppeNavn, m.MemberID, a.AccessType FROM Gruppe g JOIN Member_Access a ON g.GruppeID = a.GruppeID JOIN Member m ON a.MemberID = m.MemberID WHERE g.GruppeID = 1
Saa faar du, for eksempel:
GruppeID GruppeType GruppeNavn MemberID AccessType 1 Open GruppeA 1 User 1 Open GruppeA 2 Admin
Eller soeger du noget helt andet? I saa fald fortael hvilken oplysning du starter med og hvilke oplysninger i hvilke tabeller du saa vil have ud.
Synes godt om
Slettet bruger
26. april 2011 - 14:13#6
Hej igen
tro sku det var nummer to løsning du kom med jeg skal bruge jeg ser lige på det igen her til aften..
weblis, fik du set paa det? Jeg tillader mig at oprette dette som svar saa der er gjort klar til at lukke spoergsmaalet hvis #5 var til hjaelp. Hvis ikke, saa bliver du nok noedt til at fortaelle mere konkret hvad du vil opnaa. I saa fald kunne du jo komme med nogle eksempler paa de data du har i tabellerne og paa hvordan resultatet skal se ud.
Synes godt om
Slettet bruger
28. april 2011 - 21:52#8
Hej Christian Det ser ud til at virker meget godt og takker og lukker mangler bare et svart fra dig..
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.