![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Witam mam zamiar zaimplementowac w swoim projekcie "przyjazne linki". Mianowicie chcę by zamiast takiego adresu mojestrona.com/artukuły/id było mojestrona.com/artukuły/tytuł_artykułu
znalazłem rozwiązanie w manualu do Symfony mianowicie chodzi mi o : http://www.symfony-project.org/tutorial/1_2/my-first-project Dział Change the URL format Jednak biorąc pod uwagę że w bazie będzie większa ilość artykułów to ten sposób wydaje się mało wydajny. Wiem że można tez zrobić to stosując Route Class no ale tu by trzeba oprócz tytułu dać przynajmniej id artykułu. I teraz moje pytanie jak optymalnie zrobić takie adresy jakie chcę ? Przychodzi mi na myśl jakaś dodatkowa kolumna w tabeli która by zawierała slug z tytułu. Jakie wy stosujecie rozwiązania ? Ten post edytował Gribo 3.08.2009, 16:43:42 -------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
To co Ty nazywasz slug tam jest nazwane stripped title. Cała różnica, więc wydajność jest taka sama.
Jeśli chodzi o wydajność, to można optymalizować (oczywiście jeśli to konieczne) to w sposób następujący: tworzysz w Twojej tabeli dodatkowe pole typu char, o długości np. 40. Do tego pola będzie trafiać tytuł potraktowany funkcją haszującą (np. sha1, stąd długość pola). Dalej już chyba wszystko jasne. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
A czy to jest dobre rozwiązanie te z dodawaniem wierszy stripped title do tabel gdzie potrzeba ? Czy może istnieje jescze jakieś wyjście ?
-------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ja stosuję rozwiązanie pośrednie tj. linki postaci:
mojestrona.com/artukuły/123/tytuł_artykułu gdzie 123 to id artykułu. Dodanie cyferek nie wpływa w dużym stopniu na wygląd adresu, a umożliwia wyszukiwanie artykułu bezpośrednio po kluczu głównym. Przy takim podejściu nie musisz nawet trzymać "tytul_artyukulu" w bazie danych - możesz go tworzyć na bieżąco. Jest tylko jeden drobny problem. Linki: mojestrona.com/artukuły/123/tytuł_artykułu mojestrona.com/artukuły/123/sraka_praptaka zaprowadzą nas w to samo miejsce. Rozwiązaniem jest sprawdzenie czy "tytul_artykulu" faktycznie odpowiada odpowiednio przerobionemu "Tytuł artykułu". Ten post edytował phpion 3.08.2009, 20:11:34 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
w tej chwili korzystam z tej formy linków ale nie jest to zbyt dobre bo zaużmy chce zrobic taki link
strona.com/zielona_gora/aktualnosci/temat_wiadomosci/ i teraz by takie coś zrobić potrzebować będę 2 id , miasta i wiadomości co już nie ładnie wygląda. tym bardziej ze jak koles wykasuje przypuśćmy kawałek adresu i zostawi tylko strona.com/zielona_gora/ to już nie będzie działać -------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 898 Pomógł: 48 Dołączył: 2.11.2005 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
w tej chwili korzystam z tej formy linków ale nie jest to zbyt dobre bo zaużmy chce zrobic taki link Mam nadzieję, że to tylko palec ci się osunął ;-) Co do tematu, to slug/stripped title (jak zwał tak zwał) przechowywany w bazie, to najlepsze wyjście w tej sytuacji. Id w adresie ma jeden duży plus, tj. gdy zmieniasz tytuły, to link będzie zawsze działał. Oczywiście warto wtedy zrobić przekierowania na odpowiedni adres albo chociaż użyć odpowiedniego metatagu, żeby nie dostać DC od Googla. Z drugiej strony psuje jednak trochę wygląd adresu. Ja często robię tak, że mam adres "slug_id" czyli np. produkt/nazwa-produktu_id i w kontrolerze szukam produktu po id i potem sprawdzam czy slug się zgadza. Jeśli nie to robię przekierowanie 301 na właściwy adres. Dzięki temu stare linki będą działały nawet po zmianie adresu. Co do wydajności szukania po slugu, to o ile tych artykułów nie będzie naprawdę dużo (np. 50.000) to wydajnością nie ma sensu się przejmować. Wyszukiwanie po liczbach jest szybsze niż po słowach, ale przy małych zbiorach różnica jest niezauważalna. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 237 Pomógł: 17 Dołączył: 1.11.2007 Skąd: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
o to mi chodziło wielkie dzięki za upewnienie mnie co do tego rozwiązania
-------------------- Wyszukiwarka noclegów w Polsce i zagranicą.
Najlepszy katalog turystyczny wspomagający pozycjonowanie i promocje stron. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 08:33 |