![]() |
![]() |
![]()
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, |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 197 Pomógł: 0 Dołączył: 11.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
A ja bym to zrobił na flagach bitowych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Używasz 1 tabeli dodatkowej:
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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) 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: 13.10.2025 - 08:31 |