Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: unikalne tagi
Forum PHP.pl > Forum > PHP
jarmiar
witam

mam kilka tabel w bazie, które zawierają pola: tagi a w nich następujące sekwencje:

tag1, tag2, tag3, etc......

tagi mogą się powtarzać w niektórych, ja chcę wyświetlić je, ale kazde unikalne.

jak takie cos mozna zrobic?
Wicepsik
DISTINCT
piotrooo89
DISTINCT
jarmiar
no tak, ale tagi mogą sie powtarzać np tak:

tag1, tag2, tag3, tag4, tag5
tag5, tag6, tag7, tag8, tag1, tag9
tag10, tag11, tag1, tag2, tak13, tag14, tag5
piotrooo89
to w sql'u nie masz możliwości. w php można pozamieniać to na tablice i za pomocą array_unique wyciąć unikalne.
Wicepsik
Zmień strukturę bazy danych. Co jak będziesz miał powiedzmy 1000 rekordów? Wszystkie pobierzesz i będziesz przeszukiwać w tablicach ?
thek
Wicepsik... Ja mieszam w swoich tabelach i specjalnie je denormalizuję w celu przyspieszenia szukania lub łączę kilka rozwiązań. Przykład? Mam w tabeli artykułów kolumnę tagi i jednocześnie wiele do wielu standardowe, czyli z tabelą złączeniową. Czemu? Bo dla chmury tagów to drugie rozwiązanie jest idealne, ale gdy robię zwykłego searcha by wyszukać artykuły, które mają jakieś słowa kluczowe to lepiej mi założyć fulltext na kolumny tytuł, treść, tagi i co tam jeszcze chcę, by potem na tym operować. A jak ja miałbym to zrobić na relacji wiele do wielu gdzie mam dostępne tylko tagi, nie mam już zaś treści artykułu? Łączyć wszystko i potem jeszcze robić GROUP_CONCAT? Przecież zarżynam wtedy bazę winksmiley.jpg Czasem denormalizacja to sensowne rozwiązanie pod kątem optymalizacji. Tracę trochę miejsca w samej bazie na owe tagi jako zwykły tekst, ale za to zyskuję przy wydajności. Takie rozwiązania mieszane to czasem dobre rozwiązanie na przyszłość.
Niech więc zrobi tak, że kolumna tag sobie jest, ale niech jeszcze do tego dopisze dodatkowo tabele do relacji "wiele do wielu" smile.gif W ten sposób wilk będzie syty i owca cała. Poza tym nie będzie musiał wcale przebudowywać tabel. Doda co trzeba, odpali skrypt, który przeleci przez bazę i uzupełni co trzeba smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.