Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> schemat bazy "prywatnych" profili, ala grono, nasza-klasa
szczypior
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 0
Dołączył: 5.02.2007

Ostrzeżenie: (0%)
-----


Witam

Serwisy takie jak grono czy nasza-klasa wprowadziły możliwość wyboru przez użytkownika, które dane mają być widoczne jakim użytkownikom. Tzn, można określić że imię będą widzeń wszyscy, zalogowani będą widzieć też nazwisko, a znajomi np: zdjęcia. Ciekaw jestem jak przy tego rodzaju profilach buduje się bazę, czy najlepszym rozwiązaniem jest po prostu dodanie dodatkowych pól w tabeli, w ten sposób:

  1. | id | imie | pokaz_imie | nazwisko | pokaz_nazwisko itp
  2. | 1 | Karol| wszyscy | Kowalski | zalogowani


Czy jest może lepszy, efektywniejszy sposób?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
heaven
post
Post #2





Grupa: Nieautoryzowani
Postów: 92
Pomógł: 15
Dołączył: 21.10.2006

Ostrzeżenie: (0%)
-----


@Qmis: No liczby tak jak ty to opisujesz to sie nie nadaja jesli chodzi o ten typ rozwiazania problemu. Pomyśl ile musialbys liczb przypisac jesli byloby 5 opcji tylko. Do tego tyllko i wylacznie bity czyli robisz mniejwiecej tak
  1. <?php
  2. define('NAME_VISIBILITY',1); // 1 czyli bitowo 00001
  3. define('EMAIL_VISIBILITY',2); // 2 czyli bitowo 00010
  4. define('GG_VISIBILITY',4); // 4 czyli bitowo 00100
  5. define('CITY_VISIBILITY',8); // 8 czyli bitowo 01000
  6. //i teraz jak pobierzesz z bazy option dla danego usera to tylko sprawdzasz
  7. if(option & NAME_VISIBILITY) { echo .... }
  8. if(option & GG_VISIBILITY) { echo 'jego gg to'.$user_gg }
  9. //Jak chcesz zmienic zeby nazwisko bylo ukryte piszesz
  10. option &= !NAME_VISIBILITY; // i zapisujesz to nowe option do bazy a najlepiej zobic to bezposrednio przez zap
    ytanie sql 'UPDATE users SET option = option & !'.NAME_VISIBILITY.' WHERE user_id=......'
  11. //jesli chcesz zmienic zeby sie numer gg pokazywal to tak:
  12. option |= GG_VISIBILITY; // i zapisujesz to nowe option do bazy lub od razu zmienic zapytaniem
  13. ?>
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 19:34