Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Skripta za listu prijatelja

[es] :: PHP :: Skripta za listu prijatelja

[ Pregleda: 1810 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

BLACK_SWORD

Član broj: 212173
Poruke: 171
93.157.199.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Skripta za listu prijatelja06.07.2011. u 19:22 - pre 155 meseci
Pozdrav!

Napravio sam sajt na koji se korisnici registruju prave svoje galerije slika itd.

E sad bi da napravim da korisnici mogu dodavati jedni druge u prijatelje nešto kao na facebook/u.

Dali mi neko može reći na koji e to način radi? Kako kreirati bazu tablicu za prijatelje?

Ja sam probo vako:

Tablica
Code:

CREATE TABLE IF NOT EXISTS `prijatelji` (
  `id_prijatelji` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `prijatelj1` int(11) unsigned NOT NULL,
  `prijatelj2` int(11) unsigned NOT NULL,
  `prihvatam_prijateljstvo` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id_prijatelji`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;


i sad kad hoću da dodam nekog u prijatelje sebe upisujem u prijatelj1 a tog prijatelja u prijatelj2, i kad prijatel2 prihvati prijateljstvo u bazi se sprema mjesto 0 sprema se 1.

Dali neko ima bolju ideju kako da ovo napravim?

Hvala!
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Skripta za listu prijatelja07.07.2011. u 02:32 - pre 155 meseci
Tvoje rešenje je sasvim ok. Imaš sve potrebne podatke korisnik, prijatelj, odobreno - da/ne.
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Skripta za listu prijatelja07.07.2011. u 10:09 - pre 155 meseci
eventualno da stavis prijatelj1 i prijatelj2, da oba polja budu primarni kljuc pogotovu jer neces imati situaciju da dva usera budu dva puta prijatelji
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Re: Skripta za listu prijatelja07.07.2011. u 10:14 - pre 155 meseci
Trebaju ti dva polja za prihvatanje prijateljstva, posto bi to trebalo da bude obostrano.

Štaviše ja to ne bih zvao prijateljstvom, nego poznanstvom i proširio bih to statusom poznanstva. FB pristup da su svi prijatelji je prilicno bezveze. Ljudi mogu da se poznaju iz raznoraznih razloga i njihov međusobni odnos može da bude veoma različit zavisno od vrste poznanstva.
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
*.dynamic.isp.telekom.rs.



+303 Profil

icon Re: Skripta za listu prijatelja07.07.2011. u 10:47 - pre 155 meseci
Citat:
Predrag Supurovic: Trebaju ti dva polja za prihvatanje prijateljstva, posto bi to trebalo da bude obostrano.
Pa jedan ce da posalje zahtev, a ako je vec poslao znaci da on prihvata da hoce da bude prijatelj onim kome salje zahtev :)
Drugo polje bi imalo smisla ako bi napravio opciju "predlozi prijatelja". Ali onda treba i trece polje, da se zna ko je predlozio da to dvoje budu prijatelji...
Inace, ja ne bih koristio srpski za imena tabela/kolona...
 
Odgovor na temu

vilyu
Web Developer
Beograd, Srbija

Član broj: 1188
Poruke: 444



+2 Profil

icon Re: Skripta za listu prijatelja07.07.2011. u 17:40 - pre 155 meseci
I šta ćeš da radiš kad ti budu trebali svi prijatelji nekog korisnika? Pretraživati ID korisnika u obe kolone?

Ova tabela će biti OK za mali broj korisnika, ali ako sajt postane popularan, zgodnije će biti da se kreira tabela s PK(user_id, friend_id). Ako bi se zadržali na tabeli iz prve poruke, tu bi pored PK(prijatelj1, prijatelj2) bio potreban i index KEY(prijatelj2, prijatelj1), ali to ne bi bilo tako dobro rešenje kao odvojena tabela gde je posmatrani korisnik uvek na prvom mestu.
Pera električar 0637129710, BG, preporučujem.
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Re: Skripta za listu prijatelja08.07.2011. u 08:24 - pre 155 meseci
A da ne pominemo da je FB pristup dvosmernim "prijateljstvima" promašen. Mnogo bolji je pristup koji ima Tvitter. Svako može da napravi vezu prema svakom ali je veza jednosmerna. Dvosmerno se postiže smao ako se obe osobe uzajamno povežu.
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Skripta za listu prijatelja08.07.2011. u 09:04 - pre 155 meseci
Ja bih to nazvao "Lista poznanika" ili "Lista online poznanika".

Inače, tabela bi mogla ovako da izgleda
user_id, friend_id, approved
Ne treba ti autoincrement, ali ti treba Primary (index) za user_id/friend_id i approved

Možeš i dodati polje block ako hoćeš da imaš i opciju blokiranja korisnika.

Approved je 1 kada je prihvaćen obostran zahtev. Do tada stoji 0.
Za celu "listu poznanika" upit bi bio: WHERE approved = 1 AND user_id = TVOJ_ID
Tvoji poslati zahtevi: WHERE approved = 0 AND user_id = TVOJ_ID
Tvoji neodgovoreni zahtevi drugih korisnika koji su te dodali u listu: WHERE friend_id = TVOJ_ID AND approved = 0

Na ovaj način imaš i dvosmerne i jednosmerne zahteve. Ti odluči šta ćeš da koristiš.

Dodatak: ako hoćeš opciju za blokiranje korisnika možeš iskoristiti approve polje (ne treba ti novo polje). Primer:
approve = 1 prihvaćen obostran zahtev
approve = 0 samo zahtev (neodobren)
approve = -1 ili 2 blokiran korisnik

Takođe, jednostavnim upitom možeš dobiti "zajedničke poznanike" (mutual friends) nekog korisnika, kao i preporuke korisnika (imaš korisnika u listi i tražiš iz njegove liste korisnike koje ti nemaš).

[Ovu poruku je menjao ivan.a dana 08.07.2011. u 10:31 GMT+1]
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 171
93.157.199.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Re: Skripta za listu prijatelja08.07.2011. u 13:09 - pre 155 meseci
Citat:
dakipro :eventualno da stavis prijatelj1 i prijatelj2, da oba polja budu primarni kljuc pogotovu jer neces imati situaciju da dva usera budu dva puta prijatelji

A ko stavim primarni kljuć onda neće moći bit jedan korisnik sa više korisnika prijatelj.
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Skripta za listu prijatelja08.07.2011. u 13:11 - pre 155 meseci
Pogledaj kako se koriste dva (ili vise) polja kao jedan primarni kljuc PrimayKey(user_id, friend_id)
 
Odgovor na temu

BLACK_SWORD

Član broj: 212173
Poruke: 171
93.157.199.*

Sajt: www.artwebdizajn.com


+3 Profil

icon Re: Skripta za listu prijatelja08.07.2011. u 16:21 - pre 155 meseci
evo kako sam tablicu kreiro.

Code:
CREATE TABLE IF NOT EXISTS `raja` (
  `id_korisnika` int(11) unsigned NOT NULL,
  `id_korisnika2` int(11) unsigned NOT NULL,
  `prihvatam` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id_korisnika`, `id_korisnika2`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;


Šta mislite dali je ovo dobro?

Hvala na odgovoru.

[Ovu poruku je menjao BLACK_SWORD dana 08.07.2011. u 17:46 GMT+1]

[Ovu poruku je menjao BLACK_SWORD dana 08.07.2011. u 18:36 GMT+1]
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Skripta za listu prijatelja09.07.2011. u 09:00 - pre 155 meseci
Code:
CREATE TABLE `raja` (
  `id_korisnika` int(11) NOT NULL,
  `id_korisnika2` int(11) NOT NULL,
  `prihvatam` int(11) NOT NULL,
  PRIMARY KEY  (`id_korisnika`,`id_korisnika2`),
  KEY `odobreno` (`prihvatam`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

[es] :: PHP :: Skripta za listu prijatelja

[ Pregleda: 1810 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.