Jag tog upp hur man skulle strukturera en sådan databas tabell och så fick jag detta svaret
[kompisar]
x_ID - räknare
x_userID - räknaren på den som listan tillhör.
x_friendID - räknaren på den personen som ska vara med i listan.
Jag tänkte att för att minska databaskopplingarna så bör man bara använda denna tabell när användaren lägger till en ny person eller tar bort en. Kompislistan sparas med html-kod i en enda post i user tabellen istället.
[user]
ID
Username
bla bla
Kompislista - Hela kompislista
På detta sätt så räcker det att jag bara öppnar en tabell och hämtar hela raden för användaren. Vad tror ni om den lösningen? Blir det en optimering?
Skulle användaren ta bort eller lägga till en kompis så använder man sig av tabell: kompis...när någon förändring skett så hämtar man in alla användarens kompisar och lägger de i en post med html-kod likt:
Det är ju onödigt att ha något dynamiskt när kompislistan i stort sett är statisk...eller tänker jag fel? Man lägger ju inte till en polare varje dag precis...:)
Skapa en ren relationstabell. Denna tabell håller koll på relationerna.
Du behöver inte (ska inte) skapa flera tabeller med samma data. En kompis är ju även en användare, eller hur?
ex.
[Användare]
id
namn
[kompisrelation]
a_id
k_id
Skapa sedan 1:N relation mellan användare.id och kompisrelation.a_id
kompisrelation.k_id innehåller en användare.id för varje kompisrelation.
Visst, ser lite konstigt ut, men detta är "rätt" sätt att lösa en relationstabell.
Men om jag ska ha denna kompislista på varje sida som en listbox...så måste jag öppna db-kopplingen varje gång...man kanske kan göra så här att man kör en sådan relation och lägger in värdet i en session ("kompisar")...går det att göra...hur mycket kan man lagra i en session egentligen...
Mycket av allt ska kunna nås från en sida...jag vill komma bort från två nivår länkar...man kanske kan cache in kompis-listan på användaren? (frames är dock uteslutet...)
Vad är den smarta datamodellen? Med två nivå länkar menade jag...att den finns en sida som heter kompisar och när man klickar på den så har man sina kompisar där...men jag ska ha kompisarna i en listbox på varje sida och då känns det onödigt att öppna en db-koppling till tabellen kompisar varje gång man byter sida...
Tror du session är en bra lösning på detta problemet?
Spelsidan: Jag har ännu inte utvecklat kompislistan utan tänker just nu på hur jag ska strukturera upp den...
Detta är ju ett perfekt tillfälle att använda en ram. Dels underlättar det programmeringen, dels ökar det prestandan, eftersom du bara behöver uppna databasen när sidan laddas om. Annars får du ju göra det varje gång du byter sidinnehåll.
Vill du nu inte använda en separat frame, så föreslår jag en array sparad i en sessionsvariabel. Denna array kan innehålla kompisinformationen.