criterii sortare informatii

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Avatar utilizator
aureldragut
PHPRomania Supporter
Mesaje: 23
Membru din: Lun Dec 05, 2005 5:12 pm
Localitate: bucuresti
Contact:

criterii sortare informatii

Mesajde aureldragut » Mar Oct 10, 2006 9:25 am

Salutare,

sper ca am ales bine categoria si titlul topicului, daca nu imi cer scuze. as avea ceva de facut si nu imi vine nici o idee mai interesanta. vreau sa fac ceva asemanator unui newsletter prin care sa trimit stiri. am n useri inscrisi la care sunt nevoit sa le filtrez stirile in functie de domeniile alese.

eu m-am gandit initial la ceva in php si mysql adica sa fac o baza de date cu userii si in cadrul fiecarui user sa am un camp varchar de ex. de lungime egala cu nr. de domenii existente si sa fie de forma 0010110 in sensul ca 1 inseamna ca e dornic sa primeasca stiri din domeniul aferent si 0 ca nu. si apoi cand apare stirea se vede pozitia domeniului in lista respectiva si apoi se cauta in acea serie ("0010110") pentru a se vedea daca are 0 sau 1.

daca ma puteti ajuta cu un sfat sau o idee mai buna, va rog sa o faceti. multumesc



demonu
Average Member
Mesaje: 76
Membru din: Mie Apr 12, 2006 8:16 pm
Contact:

Mesajde demonu » Mar Oct 10, 2006 1:02 pm

SET si scapi de o lista urata de asocieri categorie-bit

Avatar utilizator
aureldragut
PHPRomania Supporter
Mesaje: 23
Membru din: Lun Dec 05, 2005 5:12 pm
Localitate: bucuresti
Contact:

Mesajde aureldragut » Mar Oct 10, 2006 1:06 pm

M-am uitat pe acel link in mare. Incerc sa fac acum cu SET sa vad daca ma descurc. Multumesc!

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Mar Oct 10, 2006 1:09 pm

nu SET e solutia ci inca o tabela users_domains cu campuri: user_id, domain_id
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera

Avatar utilizator
aureldragut
PHPRomania Supporter
Mesaje: 23
Membru din: Lun Dec 05, 2005 5:12 pm
Localitate: bucuresti
Contact:

Mesajde aureldragut » Mar Oct 10, 2006 1:12 pm

carco, e ca un fel de tabel matrice sau cum sa ii zic...in sensu ca sa zicem am 50 de useri si 10 domenii de stiri...eu tre sa stochez preferintele celor 50 pentru fiecare dintre cele 10 domenii. daca se poate, explica mai detaliat ce vrei sa spui pentru ca din ce ai spus nu am inteles mare lucru.

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Mar Oct 10, 2006 1:23 pm

Pai ce sa explic, mai faci inca o tabela "users_domains" in care o sa ai ceva de genul:

Cod: Selectaţi tot

user_id|domain_id
1        | 1
1        | 2
1        | 4
2        | 2
2        | 3

adica userul 1 este interesat de domeniile 1,2,4, userul 2 de domeniile 2,3

Ceva in genul asta: http://wiki.rubyonrails.org/rails/pages ... gs_to_many
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera

Avatar utilizator
aureldragut
PHPRomania Supporter
Mesaje: 23
Membru din: Lun Dec 05, 2005 5:12 pm
Localitate: bucuresti
Contact:

Mesajde aureldragut » Mar Oct 10, 2006 1:32 pm

hmm...e si asta o solutie. Multumesc, carco! Incerc varianta cu SET ca n-am mai facut pana acum si daca nu ma descurc vad varianta ta.

carco
Senior Member
Mesaje: 2799
Membru din: Joi Mai 27, 2004 4:36 pm
Localitate: Bucuresti
Contact:

Mesajde carco » Mar Oct 10, 2006 1:45 pm

Daca tu vrei sa-ti bagi picioarele in munca lu' nenea Codd nu ai decat insa ce faci tu acolo (folosind SET sau 001010101) o sa se numeasca baza de date kktionala nu relationala.

The MySQL SET datatype is not commonly used for a few reasons; First, using the MySQL SET datatype limits you to 64 elements. While you could get around this by using multiple SETs, this still represents a loss of versatility. Second, you cannot include commas in your set elements, as the comma is an element separator. Third, using a set means your data is not normalized.


Banuiesc ca nu stii ce inseamna FN3, asa ca foloseste ce vrei, eu doar am incercat sa-ti arat "lumina" :)
Programator cu experienta in Magento/ZF, Typo3/Flow3, Symfony, B2B, CRM, ERP, SMB... vand betoniera

Avatar utilizator
kyron
Senior Member
Mesaje: 639
Membru din: Joi Sep 16, 2004 1:12 pm
Localitate: Bucuresti
Contact:

Mesajde kyron » Mar Oct 10, 2006 1:50 pm

adopta metoda lui carco, iti confera mai multa flexibilitate.

Avatar utilizator
aureldragut
PHPRomania Supporter
Mesaje: 23
Membru din: Lun Dec 05, 2005 5:12 pm
Localitate: bucuresti
Contact:

Mesajde aureldragut » Mar Oct 10, 2006 1:59 pm

Ok. Am inteles. Multumesc si scuze daca am jignit cu ceva, nu asta mi-a fost intentia.

demonu
Average Member
Mesaje: 76
Membru din: Mie Apr 12, 2006 8:16 pm
Contact:

Mesajde demonu » Mar Oct 10, 2006 2:18 pm

carco are dreptate, ce tzi-am oferit eu este doar un quick-in-place-hack, depinde de tine si de cunostiintele tale ce alegi sa implementezi...dar solutia curata si eleganta este cea cu un alt tabel.
solutia cu un tabel iti ofera flexibilitate sporita si respectarea unor conditii (db normalisation) cercetate de catre niste oameni cu o pregatire superioara in domeniu
solutia cu set iti ofera un timp de implementare un pic mai redus (nesemnificativ daca sti bine ce ai de facut) si o foooooarte mica imbunatatire a timpului de executie (care cred ca e nesesizabil pt problema ta)


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 31 vizitatori