Hvis en User kan være i flere teams skal du lave en mange-til-mange relation. Det gør du med en ekstra tabel:
User ---- UserID Navn m.m.
Team ---- TeamID Navn m.m.
TeamUser -------- TeamUserID UserID TeamID m.m.
Så hvis du har en User med UserID 34, og han skal være i Team med TeamID 3 og 14, så laver du 2 poster i TeamUser: En med UserID 34 og TeamID 3, og en med UserID 34 og TeamID 14.
Skal du vide hvilke teams user 34 er med i siger du
SELECT TeamID FROM User INNER JOIN TeamUser ON User.UserID = TeamUser.UserID WHERE User.UserID = 34
Skal du vide hvilke users der er med i team 14 siger du: SELECT UserID FROM TeamUser INNER JOIN Team ON TeamUser.TeamID = Team.TeamID WHERE Team.TeamID = 14
De med at lave felter med kommaseparerede ID'er har vi vist alle været inde på, men det er besværligt, og meget ressourcekrævende. Den "rigtige" måde virker måske kompliceret i første omgang, men det bliver meget hurtigt en vane, og din kode bliver mere ren.
Man siger at kompliceringsgraden af et projekt er konstant, du kan blot vælge om det komplicerede skal være i databasen, eller i den kode der betjener sig af databasen.
If TeamID <> "" Then TheTeamID = split(TeamIDX,", ") for i=0 to Ubound(TheTeamID)
If Round(Request.Querystring("Team")) = Round(TheTeamID(i)) Then response.write rs("Navn") & "<br>" Else End If
next End If
jeg kunne simpelhen ikke lige overskue at skulle lave det hele om. Men det er sikkert at næste gang jeg skal lave noget magen til vil jeg bruge denne løsning.
korrekt - det giver en smule mere arbejde under oprettelse og sletning, men det er MÅDEN at arbejde med databaser på. Set i forhold til det arbejde man sparer når man skal arbejde med dataene så er det også småting - alene den kode du dér har lavet fylder vel næsten mere end hvad der kræves af opret/slet... for ikke at tænke på server-arbejdet.
Hvis ikke du allerede har en masse sider og en masse data ville jeg helt klart foretrække at lave strukturen rigtig :)
yes jeg har fået det lavet men ikke som i beskrev jeg gjorde det med en split funktion, men næste gang jeg skal lave noget ligende vil jeg bruge jeres forslag så smider i ikke lige et svar så deler jeg point mellem jer.
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.