![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
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? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
DISTINCT
|
|
|
![]()
Post
#3
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 616 Pomógł: 12 Dołączył: 16.07.2006 Skąd: : getCity ( ); Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
Post
#5
|
|
Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
to w sql'u nie masz możliwości. w php można pozamieniać to na tablice i za pomocą array_unique wyciąć unikalne.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 575 Pomógł: 299 Dołączył: 26.03.2009 Ostrzeżenie: (20%) ![]() ![]() |
Zmień strukturę bazy danych. Co jak będziesz miał powiedzmy 1000 rekordów? Wszystkie pobierzesz i będziesz przeszukiwać w tablicach ?
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
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ę (IMG:style_emoticons/default/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" (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 19:01 |