O problema de mySQL

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

deltiq
PHPRomania Supporter
Mesaje: 12
Membru din: Mar Sep 21, 2004 2:57 am
Localitate: Iasi
Contact:

O problema de mySQL

Mesajde deltiq » Mar Sep 21, 2004 3:22 am

Salutare,

am si eu o problema de php/baza de date. Mai exact:

am creat un sistem de stiri, in regim de sistem de utilizatori. adica am o baza de date structurata (partial) astfel:

- un tabel ce contine info despe membri
- un tabel ce contine stirile propriu-zise
- alt tabel cu comentariile asupra stirilor

Ok. inainte sa continui tb sa va spun ca nu sunt nici incepator, nici un adevarat profesionist (undeva la mijloc deci).
Atunci cand este afisata o stire din baza de date sunt extrase si comentariile asociate acelei stiri. Ceva de genul (exemplu de pseudopagina):

******
Titlu stire
Continut stire
*****
Comentarii:
postat de gigel : comentariul
postat de ionel : comentariul
postat de aurel : comentariul

textul cu albastru e evident un link care duce spre profilul acelui membru.
Comentariile sunt facute doar de membri inregistrati, existenti in primul tabel.

Aici e problema mea: vreau sa fac astfel incat fiecare astfel de link sa fie de forma profil.php?userid=xxxx insa pentru asta trebuie sa fac o interogare destul de nasoala a bazei de date in tabela cu useri, pentru a afla ce ID unic are userul gigel, apoi ionel etc. Va dati seama daca am peste 100 de comentarii la un singur articol?...

este exact acelasi sistem existent pe acest forum - numele in stanga, si link-ul "profil" contine acel id....

Cateva detalii despre tabelul de comentarii:

comID - cheia unica a comentariului
comRelID - ID-ul stirii cu care e asociat comentariul
comAutor - username-ul autorului

Dilema este urmatoarea: sa zicem ca as rezolva problema si in loc sa inserez comAutor as insera direct ID-ul unic al user-ului. Astfel as rezolva problema cu linkurile, insa nu as mai avea cum sa afisez la comentarii cine este de fapt user-ul, decat daca (si aici ne intoarcem de unde am plecat) facem o interogare masiva si anevoioasa a bazei de date pt a afla ce user are cheia unica xxxx (mai bine exprimat "sa aflu user-ul cheii xxxx"). hmmm... daca ma gandesc acum mai bine parca ar fi totusi mai eficienta cautarea dupa cheie decat dupa username...

De ce nu fac pur si simplu ceva de jenu: profil.php?user=gigel pentru a accesa profilul? Evident, din motive de performanta, interogarea va fi mai rapida de vreme ce acel userID e PRIMARY KEY.

Singura solutie la care ma pot gandi ar fi sa salvez atat username-ul cat si ID numeric al autorului in tabela de comentarii, insa mi se pare ca e o solutie cam urata, si nu vreau solutii urate.

Sper ca nu v-am stresat prea tare, multumesc mult pentru rabdare, daca ati ajuns sa cititi pana la acest rand :)



Avatar utilizator
arond
Senior Member
Mesaje: 580
Membru din: Joi Mar 11, 2004 2:00 am
Localitate: 127.0.0.1
Contact:

Re: O problema de mySQL

Mesajde arond » Mar Sep 21, 2004 4:54 am

People ask for criticism, but they only want praise.
W. Somerset Maugham (1874 - 1965).

http://www.arond-design.ro

deltiq
PHPRomania Supporter
Mesaje: 12
Membru din: Mar Sep 21, 2004 2:57 am
Localitate: Iasi
Contact:

Mesajde deltiq » Mar Sep 21, 2004 2:20 pm

Salut, multumesc pentru raspuns.

Asa e bine? (functioneaza):

SELECT a.*, b.username FROM $tblComent a , $tblUsers b
WHERE a.comRelID='$itemID' AND a.comAutorID=b.userID

Avatar utilizator
arond
Senior Member
Mesaje: 580
Membru din: Joi Mar 11, 2004 2:00 am
Localitate: 127.0.0.1
Contact:

Mesajde arond » Mar Sep 21, 2004 3:43 pm

People ask for criticism, but they only want praise.

W. Somerset Maugham (1874 - 1965).



http://www.arond-design.ro


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Google [Bot] și 15 vizitatori