webForumDet fria alternativet

Kompislista i en post?

11 svar · 163 visningar · startad av Lukaspojken

LukaspojkenMedlem sedan maj 20011 312 inlägg
#1

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?

rymdknarkMedlem sedan maj 2000175 inlägg
#2

Nja, den lösningen kan kanske fungera.
Själv, tycker jag, att den verkar ganska kruftig och odynamisk.

LukaspojkenMedlem sedan maj 20011 312 inlägg
#3

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:

<a href="blabla">kompis1</a>
<a href="blabla">kompis2</a>

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...:)

ToonsterMedlem sedan feb. 20001 590 inlägg
#4

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.

/T

------------------
WRITE_PORT_ULONG(devExt->Mymessage,SMART_WRITE_ACK);

LukaspojkenMedlem sedan maj 20011 312 inlägg
#5

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...

ToonsterMedlem sedan feb. 20001 590 inlägg
#6

Ska du ha tillgång till kompisarna på flera sidor, så måste du antingen hämta dom från databasen varje gång, eller lagra i en session.

Är det inte smartast att bara visa komisar på en sida i en ram, så slipper du att göra detta på flera sidor?

/T

------------------
WRITE_PORT_ULONG(devExt->Mymessage,SMART_WRITE_ACK);

LukaspojkenMedlem sedan maj 20011 312 inlägg
#7

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...)

spangoMedlem sedan juni 20008 205 inlägg
#8

Undvika två nivåer med länkar? Varför skulle du bli tvungen att ha det bara för att du använder en smart datamodell?

------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.

SpelsidanMedlem sedan juni 200110 inlägg
#9

Hur ser asp koden för visavanner.asp ut!

LukaspojkenMedlem sedan maj 20011 312 inlägg
#10

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...

ToonsterMedlem sedan feb. 20001 590 inlägg
#11

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.

/T

------------------
WRITE_PORT_ULONG(devExt->Mymessage,SMART_WRITE_ACK);

LukaspojkenMedlem sedan maj 20011 312 inlägg
#12

Som sagt frame är uteslutet...så det får bli nån form av session array...hur skulle en sådan se ut ungefär...om varje rad skulle vara:

<a href"bla">kompis 1</a>

Måste det verkligen vara en array?

136 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)