Προτασεις για υλοποιηση πινακα για Friend's activity

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
geproh
Δημοσιεύσεις: 10
Εγγραφή: 31 Οκτ 2010 23:54
Τοποθεσία: Greeceeee

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από geproh » 01 Νοέμ 2010 00:08

Καλησπερα σε ολους!

Θα ηθελα μια συμβουλη για το εξης:
Ενδιαφερομαι να φτιαξω κατι του στυλ friend's activity, δηλαδη ενα μελος να ενημερωνεται για το τι εκαναν οι φιλοι του προσφατα (οπως στο fb,το myspace κλπ)
Κολλαω ομως στον τροπο που θα υλοποιηθει. Τι εννοω:
Λοιπον εστω οτι ενα μελος μπορει 1) να γινει φιλος με καποιον αλλον 2) να κανει ενα σχολιο σε καποιο μελος 3) χμ.. να ανεβασει μια photo του. Και υπαρχουν οι αντιστοιχοι πινακες οπου γινονται οι καταχωρησεις (πχ friends πινακας, comments πινακας, photos πινακας)
Προκειμενου να δω εγω τι εκαναν οι φιλοι μου (δηλαδη ο Nikos πχ εγινε φιλος με τον Gianni) τι διαδικασια πρεπει να ακολουθησω?
Σκεφτομαι σαν λυση να κανω ενα πινακα (πχ activities) οπου θα αποθηκευει α)το μελος, β)τι εκανε (με μορφη id - δηλαδη 1=φιλος 2=σχολιο 3=photo) γ)το id το οποιο θα ειναι στην ουσια το primkey που θα αντιστοιχει στον πινακα που αφορα το β)
(Δηλαδη ο Nikos εγινε φιλος με τον Gianni -> στον πινακα activities -> α)125 (αρ.μελους), β)1 (οπου 1=εγινα φιλος με καποιον), γ) 299 (=στον πινακα με τους φιλους, η καταχωρηση με primkey 299 αντιστοιχει στην φιλια του Nikos με του Giannis)

Αν ακολουθησω αυτον τον τροπο ομως, θα πρεπει μετα σε καθε αποτελεσμα να κανει ενα νεο query που θα ψαχνει στον αντιστοιχο πινακα για λεπτομερειες σχετικα με αυτο. Αρα αν πχ εμφανιζονται 30 αποτελεσματα θα πρεπει να κανει 31 queries (1 το αρχικο και τα υπολοιπα 30 ειναι για το καθε αποτελεσμα που θα ψαχνει για λεπτομερειες)

Τι αλλη λυση σκεφτεστε οτι μπορω να ακολουθησω;

Ευχαριστω εκ των προτερων!
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από fafos » 01 Νοέμ 2010 01:41

Einai poly pio syntheto apo oti fantazesai.. yparxoun arketoi parametroi... o shmantikoteros einai to privacy, dhl kata poso thelo ego san melos na deixno ston oiandhpote ti kano mesa sto site... to proto pou prepei na feiakseis einai ena pinaka me tis adeies pou dinei to kathe melos gia kathe enothta:

user_id
privacy
enothta

ola ta parapano mporoun na einai INT type (apla noumera dhladh)

to melos meta exei enan pinaka me selects opou epilegei gia kathe enothta ti adeia dinei.. p.x.:

na vlepoun ta sxolia mou: oloi(0) - mono ta meloi(1) - mono oi filoi(2) - kaneis(3)
na vlepoun poion ekana filo: oloi(0) - mono ta meloi(1) - mono oi filoi(2) - kaneis(3)

klp klp

to kathena apo auta tha kanei mia nea eggrafh sthn vash.. p.x.

eggrafh 1

user_id = 1 (melos)
privacy = 2 (mono ta melh)
enothta = 1 (poioi tha vlepoun ta sxolia)


eggrafh 2

user_id = 1 (melos)
privacy = 3 (mono oi filoi)
enothta = 2 (poioi tha vlepoun tous neous filous)

klp klp

to privacy "oloi" to exeis keno h me timh 0 sthn vash... otan kanei eggrafh to melos paei kai rythmizei ton pinaka me ta privacy kai etsi tha arxizei na vazei eggrafes sthn vash.. ex orismou dhladh den yparxoun eggrafes kai oles tis enothtes tis vlepoun oloi... an thes kapoies enothtes (h oles) na tis vlepoun mono filoi apo thn arxh tha prepei me thn eggrafh tou xrhsth na dhmiourgoyntai kai oi analoges eggrafes sthn vash (kati analogo pou kanei to facebook dhladh)


epomeno vhma einai h dhmiourgia tou pinaka filon (p.x. friends)

ekei thes ena id_user ena id_friend kai ena timestamp gia thn hmeromhnia pou egine filos

ta 2 prota tha einai INT (tha pairnei ta id ton melon) kai to allo timestamp h date type


thes allon ena pinaka o opoios tha pairnei ta friends_requests (aithseis) auton pou zhtane na ginoun filoi me ta idia pedia opos parapano... oi eggrafes edo tha einai prosorines an to allo melos dextei thn aithsh.. me to pou tha dextei thn aithsh h eeggrafh tha diagrafei automata kai tha ginoun 2 nees eggrafes ston pinaka friends..
kaneis 2 eggrafes me tous id_user kai id_friend antistrofa (1= fafos filos tou geproh kai 2= geproh filos tou fafos)

autoi oi 3 pinakes arkoun gia arxh.. meta einai thema fantasias ti allo mporeis na feiaxeis gia tous filous (p.x. enan pinaka pou na antallasoun mhnymata genethlion)

tora, pos tha emfanizeis ta mhnymata me tis energeies pou exei kanei o filos.. einai aplo.. me to pou mpaineis sto profile tou filou exeis ena script opou kalei oles tis eggrafes tou user_id = filos opou privacy mikrotero tou 3(kaneis)
an den eisai filos alla eisai syndemeno melos kalei user_id = filos opou privacy mikrotero tou 2(mono oi filoi)

an eisai aplos xrhsths xoris syndesh san melos kaleis user_id = filos opou privacy = 0(oloi)

ola auta tha ta emfanizeis me kapoio LIMIT=XX kai me xronologikh seira apo to neotero pros to palaiotero..

an emfanizeis mhnymata apo tous pantes sthn arxikh selida tou site ekei tha kaleseis apo ola ta melh tis energeies pou ekanan ta teleutaia XX lepta kai me ena LIMIT = XX gia na mhn krasareis ton server... kai ekei pali tha prepei na kaneis elenxo an to melos epitrepei na deis tis energeies opos kaname parapano


sorry gia ta greeklish alla den mou epitrepei ta Greek to pc..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

geproh
Δημοσιεύσεις: 10
Εγγραφή: 31 Οκτ 2010 23:54
Τοποθεσία: Greeceeee

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από geproh » 01 Νοέμ 2010 16:59

Καλησπερα,
Σ'ευχαριστω για την απαντηση.

α)Λοιπον, καταρχην περι privacy δεν ειχα σκεφτει, αλλα αμα τυχον συμπεριληφθει τοτε δεν μπορουν οι αδειες να συμπεριληφθουν στον πινακα με τα μελη; (Δηλαδη στον πινακα μελων: username,password,....,privacy_sxolia,privacy_friends κλπ)
β)Ο πινακας με τους φιλους εχει πχ την δομη primkey,sender,receiver,type,date οπου το type:0 εχει κανει αιτηση φιλιας ο sender στον receiver και ειναι σε ανομονη μεχρι να γινει αποδοχη/απορριψη, 1:ειναι φιλοι, 2:την απερριψε ο receiver κλπ (οποτε δεν χρειαζεται νεος πινακας για friends requests)
Δηλαδη για καθε φιλια γινεται μια εγγραφη και οχι δυο (οπως προτεινεις) [και για να βρω τους φιλους ενος μελους βαζω where (sender=x and receiver<>x) or (sender<>x and receiver=x) -οπου χ το session key του μελους(αν προκειται για μενα) και επειτα με if ξεχωριζω τους φιλους απο το μελος]
γ)Εκει που κολλαω ειναι το τελευταιο μερος οπου
tora, pos tha emfanizeis ta mhnymata me tis energeies pou exei kanei o filos.. einai aplo.. me to pou mpaineis sto profile tou filou exeis ena script opou kalei oles tis eggrafes tou user_id = filos opou privacy mikrotero tou 3(kaneis)
Σχετικα με αυτο:
1) Οι εγγραφες του user_id πχ που λεει γινονται σε αλλο πινακα ετσι; Και εκει τι αποθηκευονται;
2)Εγω το τι εκαναν οι φιλοι μου θελω να το βλεπω πχ απο τον λογαριασμο μου και οχι απο το προφιλ τους. Εννοω πως στο προφιλ βλεπω τι εκανε το 1 μελος, εγω ομως θελω πχ να συνδεομαι στον λογαριασμο μου και να με ενημερωνει τι εκαναν ολοι οι φιλοι μου προσφατα. (Δηλαδη ο Nikos εκανε ενα comment σε photo του Giannis, μετα απο κατω o Dimitris ανεβασε μια photo απο κατω, η Maria εγινε φιλη με την Niki κλπ, οπου Nikos,Dimitris,Maria φιλοι μου)

Ευχαριστω!
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από fafos » 01 Νοέμ 2010 17:30

a) oxi.. tha to exeis se ksexoristo pinaka.. den endiaferei to thema to melos pou exei to logariasmo... einai gia olous tous allous...

b) feiaxto opos sou eipa, enan pinaka me thn aithsh (requests) kai otan apodextei thn aithsh to melos na kanei 2 eggrafes me antistrofa id.. oi 2 eggrafes einai shmantikes giati den tha psaxnei olous tous pinakes na vrei me poion einai filos kai me poion oxi..

g) Mpaino sto profile sou... amesos ena query pairnei to id mou (apo mia session profanos) kai psaxnei na dei an eimai filos sou (ston pinaka friends)... an me dei san filo sou tha gyrisei mia synthikh opou tha trexei ena query apo ton pinaka privacy gia na dei ti epitrepete na do... efoson eimai filos sou tha mou epistresfei tis eggrafes me privacy mikrotero h iso me ton filon.. des to select otan to melos dinei tis adeies:

Κώδικας: Επιλογή όλων

				<select name="na_vlepoun_ta_comments">
					<option value="0" selected="selected" >oloi</option>	
					<option value="1">ola ta eggegramena melh</option>									
					<option value="2">mono oi filoi</option>
					<option value="3">Kanenas</option>

				</select>
an exei orisei ta comments = 2 (mono oi filoi) ego tha ta do... allo melos h aplos episkepths den tha ta vlepei...

me to pou tha dei loipon oti ego eimai filos tha kalesei ena query opou tha leei deikse oles tis eggrafes pou exoun times 0,1 kai 2

Κώδικας: Επιλογή όλων

select * from privacy where user_id='111" AND privacy < 3
an eimai melos alla oxi filos sou tha ginei kapos etsi:

Κώδικας: Επιλογή όλων

select * from privacy where user_id='111" AND privacy < 2
an eimai episkepths (mh syndemeno melos):

Κώδικας: Επιλογή όλων

select * from privacy where user_id='111" AND privacy = 0

apo kei kai pera feiaxneis mia function opou pairneis thn kathe eggrafh pou sou gyrnaei to parapano query kai arxizeis na emfanizeis. (an ta comments epalhtheuontai emfanise allios mhn emfanizeis tipota)

Ola auta ta queries mporoun na ginoun poly pio apla douleuontas me thn JOIN.. thelei kapoies gnoseis se php+mysql..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

geproh
Δημοσιεύσεις: 10
Εγγραφή: 31 Οκτ 2010 23:54
Τοποθεσία: Greeceeee

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από geproh » 01 Νοέμ 2010 21:00

α) Μπαινω στο προφιλ του μελους με id=9. Αρα κανω ενα query στον πινακα των μελων για να βρω τι εχει καταχωρηθει για το μελος 9 (ωστε να ενημερωθει ο επισκεπτης γιαυτο το μελος) (δηλαδη ημ.γεννησης,φυλο κλπ και επισης τα privacy) Αυτο για να μην κανει ενα extra query για να δει τα privacy του μελους. Οποτε πιο καλα δεν ειναι ετσι;

β) Δεν θα ψαχνει σε πολλους πινακες, σε εναν μονο πινακα θα ψαχνει και εχοντας ενα πεδιο type θα καθοριζει αν ειναι φιλοι (1) αν εχει κανει αιτησει φιλιας και περιμενει απαντηση(0) κλπ... Και αυτο δεν αρκει;

γ) Αυτα τα καταλαβαινω, απλως εγω αυτο που ζηταω ειναι να βλεπω τι εκανε καθε μελος(φιλος μου) οχι απο το προφιλ του, αλλα απο το dashboard μου πχ (οπως αυτο μπορουμε να το πουμε) οπου θα δω τι εκαναν οι φιλοι μου οσο ελειπα. (Οπως πχ στο fb που τα εμφανιζει στην "Αρχικη Σελιδα" (Τελευταια Νεα))
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από fafos » 01 Νοέμ 2010 21:17

geproh έγραψε:α) Μπαινω στο προφιλ του μελους με id=9. Αρα κανω ενα query στον πινακα των μελων για να βρω τι εχει καταχωρηθει για το μελος 9 (ωστε να ενημερωθει ο επισκεπτης γιαυτο το μελος) (δηλαδη ημ.γεννησης,φυλο κλπ και επισης τα privacy) Αυτο για να μην κανει ενα extra query για να δει τα privacy του μελους. Οποτε πιο καλα δεν ειναι ετσι;

β) Δεν θα ψαχνει σε πολλους πινακες, σε εναν μονο πινακα θα ψαχνει και εχοντας ενα πεδιο type θα καθοριζει αν ειναι φιλοι (1) αν εχει κανει αιτησει φιλιας και περιμενει απαντηση(0) κλπ... Και αυτο δεν αρκει;

γ) Αυτα τα καταλαβαινω, απλως εγω αυτο που ζηταω ειναι να βλεπω τι εκανε καθε μελος(φιλος μου) οχι απο το προφιλ του, αλλα απο το dashboard μου πχ (οπως αυτο μπορουμε να το πουμε) οπου θα δω τι εκαναν οι φιλοι μου οσο ελειπα. (Οπως πχ στο fb που τα εμφανιζει στην "Αρχικη Σελιδα" (Τελευταια Νεα))
a) as ypothesoume oti shmera exeis enothta me photos kai den exeis enothta me videos... aurio vazeis enothta me videos... pou tha vrei mesa ston pinaka ta videos=privacy gia na valei thn analogh adeia? kane oti sou leo... ta exo antimetopisei auta ta problhmata se analoges efarmoges..

b) kane oti sou eipa gia tous filous.. kai oposdhpote 2 eggrafes sthn apodoxh tou filou... tha to vreis mprosta sou..

g) opou thes ta emfanizeis auta.. sthn arxikh sou, sto profile sou, sto profile tou filou klp klp ... allazei mono to query.. anti na zhtas where friend= fafos zhtas apo olous tous filous sou... kai edo akrivos erxetai auto pou sou leo me tis 2 eggrafes... opos to theteis tha prepei na psaxnei se 2 pedia ton filon sthn vash (user_id kai friend_id)... an ta exeis omos opos sou leo ego psaxnei mono opou to user_id = esena kai travaei olous tous filous sou..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

geproh
Δημοσιεύσεις: 10
Εγγραφή: 31 Οκτ 2010 23:54
Τοποθεσία: Greeceeee

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από geproh » 01 Νοέμ 2010 21:38

α) Τοτε θα δημιουργησω ενα νεο column στον πινακα με τα μελη που θα λεγεται privacy_videos.. ?

β)Ηδη το εχω συναντησει και το εχω λυσει οπως σου ειπα και πιο νωρις δηλαδη για να βρω πχ τους φιλους μου κανω:

Κώδικας: Επιλογή όλων

$oloioifiloi = "SELECT * FROM friendlist,users WHERE &#40;friendlist.receiverid=$authorkey or friendlist.senderid=$authorkey&#41; AND &#40;&#40;friendlist.senderid=users.userkey AND users.userkey<>$authorkey&#41; or &#40;friendlist.receiverid=users.userkey AND users.userkey<>$authorkey&#41;&#41; AND accept=1 ORDER BY `primkey` DESC LIMIT $apo, $eos;"
και επειτα ετσι βρισκω ολους τους φιλους μου. Σκεψου και το αλλο, ηδη τωρα στον πινακα με τις φιλιες υπαρχουν 4327 εγγραφες. Αν κανω ξεχωριστα για καθε μελος τοτε θα παμε στις 8654 εγγραφες. Μετα δεν ειναι λιγο "επιπονο" οταν θα γινεται αναζητηση στην βαση δεδομενων;

γ)Κυριως κολλαω στο πως θα τα βρει συγκεκριμενα. Δηλαδη θα πρεπει να φτιαξω εναν ξεχωριστο πινακα που θα καταχωρουνται οι ενεργειες του καθενα; Η θα ψαχνει σε καθε πινακα ξεχωριστα;
Εικόνα

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Προτασεις για υλοποιηση πινακα για Friend's activity

Δημοσίευση από fafos » 01 Νοέμ 2010 21:44

a) einai lathos to skeptiko sou..

b) tora kaneis 8654 anazhthseis giati xrhsimopoieis OR.. opote to query looparei gia na vrei kai thn allh ekdoxh.. me ton tropo pou sou leo vriskei to id kai teleiose.. oute or oute tipota.. tha to katalaveis se pio syntheta queries auto..

g) sou eipa apo prin oti prepei na xrhsimopoihseis JOIN kai na travaei dedomena apo osous pinakes emplekontai kai me ena GROUP BY ta taxinomeis me thn date DESC dinontas kai ena LIMIT gia na mn sou travaei tipota xiliades eggrafes kai xasei thn mpala o server..
Οι πάνες και οι πολιτικοί πρέπει να αλλάζονται συχνά για τον ίδιο λόγο...

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες