Gå til innhold

Hvordan lage en god friendtabell i MySQL?


Anbefalte innlegg

Hvordan lage en god friendtabell i MySQL?

Til f.eks. forum.

(Skal knytte to id-er fra en tabell sammen).

Det jeg bruker nå er:

 

+--------------+---------+------+-----+---------+-------+

| Field | Type | Null | Key | Default | Extra |

+--------------+---------+------+-----+---------+-------+

| AVATARid | int(10) | NO | PRI | 0 | |

| FRIENDid | int(10) | NO | PRI | 0 | |

| friendstatus | int(10) | YES | | NULL | |

+--------------+---------+------+-----+---------+-------+

 

AVATAR er navnet på tabellen for alle brukerne.

Friendstatus er for å si om de er venner eller ikke,

0 = request og 1 = venner.

Hvis man vil bli venn med noen legges det inn vennens id, din id og status 0.

"INSERT INTO friendlist VALUES(vennID, dinID, 0)"

Når vennen logger på listes alle requestfreinds opp slik:

"SELECT FRIENDid FROM friendlist WHERE AVATARid=dinID AND friendstatus=0"

 

Jeg vet ikke om noen bedre måte å gjøre det på, jeg tenkte å bruke bare AVATARid og FRIENDid.

la oss si at det er to som vil bli venner, id 1 og id 2.

Hvis da tabellen inneholder 1, 2 og ikke 2, 1 får id 1 friendrequest, takker han ja legges 2, 1 inn i tabellen, ellers fjernes 1, 2.

 

Noen som har lagd noe lignende som kan hjelpe med et bedre system? Synes mitt er rotete og kronglete

Lenke til kommentar
  • 3 uker senere...
Videoannonse
Annonse

Ser da greit ut det du har skrevet?

 

Lettere å forholde seg til navn i eksempler, så hvis Ole(=1) vil bli venn med Kari(=2):

 

"INSERT INTO friendlist VALUES(Kari, Ole, 0)"

Når Kari logger på:

"SELECT FRIENDid FROM friendlist WHERE AVATARid=Kari AND friendstatus=0"

 

I tillegg er det enkelt å ha en liste over folk man venter på godkjenning fra på Ole sin side:

"SELECT AVATARid FROM friendlist WHERE FRIENDid=Ole AND friendstatus=0"

 

Så når Kari godkjenner Ole:

"UPDATE friendlist SET friendstatus=1 WHERE FRIENDid=Ole AND AVATARid=Kari LIMIT 1"

 

Tror det blir omtrent slik, litt vanskelig å holde tunga rett i munnen :p

 

Edit:

Kan ha en status for nektet vennskap også:

Så når Kari avslår Ole:

"UPDATE friendlist SET friendstatus=2 WHERE FRIENDid=Ole AND AVATARid=Kari LIMIT 1"

 

For å hente ut oversikten for Ole blir det da i stede:

"SELECT AVATARid FROM friendlist WHERE FRIENDid=Ole AND (friendstatus=0 OR friendstatus=2)"

Endret av ZoRaC
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...