PDA

Arată versiune īntreagă : Ajutor: Structura bazei de date pentru notificari



it_nolimit
06.07.2011, 21:18
Am si eu o problema la un proiect. Nustiu cum sa strcuturezi baza de date mai bine.

De exemplu am 5 utilizatori ... sau n utilizatori
Fiecare utilizator face un eveniment, adauga fotografie, adauga comentariu, adauga video ...
Cum ceilalti 4 utilizatori sa vada ca un utilizator a adaugat un eveniment... si cind unul din acei utilizatori apasa pe acel eveniment sa fie ca citit numai pentru el, pentru ceilalti evenimentele sunt noi .

De exemplu :
Ion a adaugat fotografie
Vasile a adaugat video ....

Mi-e imi arata ca sunt 2 evenimente noi, cind apas pe Ion a adauga fotografie , evenimente noi sa fie 1 ,...
La evenimentul Ion a adaugat o fotografie sa poti comenta si daca sunt comentarii noi tot trebuie sa-mi apara notificari ca sunt comentarii la evenimentul dat
Trebuie sa mai fie optiunea Citeste toate evenimentele
Nustiu daca m-am exprimat corect... Daca nu o sa ma incerc odata sa lamuresc
Ce sfaturi, idei imi dati... ?

netul
06.07.2011, 22:00
Creezi baza de date si mai multe tabele:

Tabel: useri
id_user - de tipul INTEGER
nume - de tipul VARCHAR
email
.....


Tabel: evenimente
id_eveniment
id_user
tip_eveniment (adaugare foto, adaugare video etc...)
data_eveniment - de tipul date
timp_eveniment - de tipul time (zi-luna-an ora:minut:secunda)

Acum depinde cum vrei sa se considere un eveniment nou.

Exemplu - Daca evenimentul nou e cel facut in aceeasi zi

$azi = date("Y-m-d");
eveniment_foto = SELECT id_user FROM evenimente WHERE data_eveniment = '$azi' AND tip_eveniment = '$adaugare foto'
Apoi din tabelul useri extragi datele userului cu id_user selectat mai sus si afisezi:
echo $nume." a adaugat o fotografie noua";

....
cam asa e pe scurt, sper ca ai inteles ideea

it_nolimit
07.07.2011, 07:35
Asta nu este problema, problema consta in evenimentul citit sau nu. Eu daca citesc evenimentul la mine este citit la alt utilizator nu, ceva asemanatori ca la forum cu posturile

Dennis
07.07.2011, 08:10
Ion, la forum (cel putin la vB) este pe baza de cookie, uite cum:

<a href="{vb:raw $vboptions.vbforum_url}{vb:if "$vboptions['vbforum_url']", '/', ''}forumdisplay.php?{vb:raw session.sessionurl}do=markread&amp;markreadhash={vb:ra w bbuserinfo.securitytoken}" rel="nofollow">{vb:rawphrase mark_forums_read}</a>
Poate-ti da o idee cum ai putea rezolva problema la tine.

susp3kt
07.07.2011, 08:43
In tabelul evenimente mai adaugi un camp status, iar acestui camp ii pui ca valoare implicita cifra 1.
Evenimentele le afisezi in functie de campul status, SELECT * FROM evenimente WHERE status="1" . Atunci cand un utilizator citeste un eveniment, in fisierul care se ocupa cu citirea evenimentelor faci un query la baza de date si ii pui campului status cifra 2 .. si automat mesajul citit nu o sa mai apara ca eveniment nou..

it_nolimit
07.07.2011, 08:46
Trebuie sa ma gindesc cu cookie sa vad ce o sa se primeasca.

Dar ideia cu un cimp status, nu este buna pentru ca al mine o sa fie citit , dar la restu nu trebuie sa fie citit...

netul
07.07.2011, 10:54
Mai creezi un tabel care face legatura intre user si eveniment

id_user
id_eveniment
status

Sau poti folosi cookie.