![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 26.06.2010 Ostrzeżenie: (10%) ![]() ![]() |
Witam, chciałem zrobić system tagów. Miałby on wyglądać podobnie do tego z WP, tzn. klikamy na tag i pokazuje nam wpisy, które są oznaczone właśnie tym tagiem.
Tagi zapisywane by były w innej tabeli niż newsy, każdy tag w innej komórce(rozwalanie ciągu tagów - explode) i skorzystać z klucza zewnętrznego, żeby było jakieś powiązanie między tagami i wpisami. Później to już chyba oczywiste, tag wyświetlany jako link i po kliknięciu pokazuje tylko te wpisy, które mają taki tag. Co o tym sądzicie? Dobry, czy zły pomysł? Jak macie jakieś inne propozycje to proszę pisać, jeżeli nie macie to może jakieś rady, bo szczerze mówiąc mam problem z rozpoczęciem. 1. Jak ciąg z jednego pola input rozwalić, np. na trzy części(to akurat nie problem) a później wstawić je do zapytania, aby zostały utworzone trzy wiersze każdy z innym tagiem? Skorzystać z pętli? 2. Jak zrobić, aby dodając wtórny raz tag, np js nie tworzyć nowego wiersza, a skorzystać z tego utworzonego wcześniej i oczywiście przypisać go do danych wpisów. Będę wdzięczny za wszelkie rady, wskazówki, funkcje które mogą mi się przydać. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat Tagi zapisywane by były w innej tabeli niż newsy, każdy tag w innej komórce(rozwalanie ciągu tagów - explode) i skorzystać z klucza zewnętrznego, żeby było jakieś powiązanie między tagami i wpisami. Relacja wiele-do-wielu. Cytat 1. Jak ciąg z jednego pola input rozwalić, np. na trzy części(to akurat nie problem) a później wstawić je do zapytania, aby zostały utworzone trzy wiersze każdy z innym tagiem? Skorzystać z pętli? Możesz dać jednego inserta, w stylu
o ile mnie pamięć nie myli. (IMG:style_emoticons/default/winksmiley.jpg) Cytat 2. Jak zrobić, aby dodając wtórny raz tag, np js nie tworzyć nowego wiersza, a skorzystać z tego utworzonego wcześniej i oczywiście przypisać go do danych wpisów. Generalnie nie potrzebujesz sprawdzać, czy istnieje już dany tag. Daj insert ignore + odpowiedni indeks i tyle. Przy usuwaniu jest trochę więcej zabawy. (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 26.06.2010 Ostrzeżenie: (10%) ![]() ![]() |
Z tego co wyczytałem insert ignore działa tak jak normalne insert z tym, że nie wstawia do bazy danych tych danych które już istnieją?
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 309 Pomógł: 56 Dołączył: 3.11.2006 Skąd: Gliwice Ostrzeżenie: (0%) ![]() ![]() |
A nie lepiej zrobić tak, że dodać dodatkowe pole w tabeli newsów i każdy tag oddzielany jest spacją?
Potem przy wyszukiwaniu newsów z tagiem pobierać to pole z tagami, explode i sprawdzać czy jest taki tag? Ewentualnie całkiem odwrotnie: tablica z tagami i 2 pola: tag i id newsów które korzystają z tego taga. Wtedy łatwiej z wyszukiwaniem bo wynik masz gotowy. Dosyć ciekawy temat. Czekam na pomysły innych. |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat A nie lepiej zrobić tak, że dodać dodatkowe pole w tabeli newsów i każdy tag oddzielany jest spacją? No tak, tylko że zamiast wyszukiwać posty pasujące do danego taga z wykorzystaniem indeksu, musisz przeszukiwać wszystkie rekordy po kolei. Cytat że nie wstawia do bazy danych tych danych które już istnieją? Owszem. Cytat Ewentualnie całkiem odwrotnie: tablica z tagami i 2 pola: tag i id newsów które korzystają z tego taga. Wtedy łatwiej z wyszukiwaniem bo wynik masz gotowy. Nadal to samo, o czym pierwsze napisałem: utrudnia skorzystanie z technik optymalizacyjnych. Nie bez powodu istnieje coś takiego, jak N-N. (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 20:09 |