Avatar billede Slettet bruger
25. april 2011 - 23:39 Der 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 ?
Avatar billede 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!)
Avatar billede 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..

men hvordan ville du gøre ud fra et brugerid ?
26. april 2011 - 07:00 #3
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.
Avatar billede 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

Member_Access
==============
AccessID
AccessType    (User,Admin)
MemberID
GruppeID

Her er det så mening at jeg får bruger oplysninger samt gruppe data samt om bruger er user,admin i gruppen
26. april 2011 - 13:59 #5
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.
Avatar billede 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..

venner lige tilbage..
28. april 2011 - 15:05 #7
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.
Avatar billede 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..
28. april 2011 - 22:42 #9
Svar fra mig.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester