![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 574 Pomógł: 2 Dołączył: 13.04.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam
chciałem się Was dzisiaj zapytać o to, w jaki sposób można rozwiązać tagi. Wpadłem na pomysł, aby tagi trzymać w oddzielnej komórce (odzielałbym je spacją). Problem z szukaniem wg jednego tagu wtedy to pestka. Schody się zaczynają gdy będę chciał pobrać wszystkie unikalne tagi. Czy w mysql można pobrać w jakiś sposób jednym sprytnym zapytaniem tagi, które nie będą się powtarzać czy trzeba będzie w php wesprzeć? Myślałem też jeszcze nad tym, aby zrobić maksymalną ilość tagów - wtedy będzie j/w i problem z pobieraniem unikalnycg tagów będzie łatwiejszy. Jak Wy to rozwiązujecie? pozdr, -------------------- jQuery, JavaScript i CSS - porady, tutoriale
highlab.pl - blog o technologiach, nauce i programowaniu |
|
|
![]() ![]()
Post
#2
|
|
![]() Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
Ja bym dał dwie tabele dodatkowe:
W ten sposób możesz pobrać co sobie zażyczysz bez żadnych problemów ![]() -------------------- Środowisko: Gentoo 2008.0 | Apache | PHP5 | PostgreSQL | MySQL | Postfix
Workstation: Gentoo 2008.0 | Firefox Thomas Alva Edison: "Aby coś wynaleźć wystarczy odrobina wyobraźni i sterta złomu ..." Odpowiedź na każde pytanie typu "Jak ...": "Nie da się, to nie PostgreSQL" |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 28.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 197 Pomógł: 0 Dołączył: 11.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
A ja bym to zrobił na flagach bitowych
![]() tags -tagId -tagName Jedynym utrudnieniem w tym sposobie jest to że tagId musi być wielokrotnością liczby 2. Teraz musisz nauczyć się używać dwóch operatorów : | - dodawanie bitowe & - mnożenie bitowe Jak to wykorzystać ? Załóżmy że w tabeli tags mamy następujące rekordy: Kod +------+-------+ |tagId |tagName| +------+-------+ |2 |tv | |4 |muzyka | |8 |pc | +------+-------+ jeżeli np. artykuł należy do tagów pc i tv w dodatkowym polu w tabeli artykułyzapisujemy wynik dodawania bitowego: Kod 2 | 8 W tym wypadku wynikiem będzie 10Teraz jeżeli chcemy wyciągnąć np. wszystkie artykuły należące do tagu pc wykonujemy zapytanie:
Jeżeli natomiast chcemy aby zapytanie zwróciło nam wszystkie artykuły należące do tagu music i do tagu pc:
To chyba tyle ![]() więcej o flagach bitowych można poczytać na http://www.forum.kasart98.com/viewtopic.ph...highlight=flagi Ten post edytował Levabul 4.09.2006, 10:57:34 -------------------- ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 08:42 |