Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ModRewrite, urle SEO friendly od strony bazy danych
Forum PHP.pl > Forum > Bazy danych
Athlan
Witam.

Dziś chciałbym się zastanowić nad tym, jak wywołać url'e SEO friendly, maksymalnie odciążając bazę danych.

Rozważmy 2 przypadki:
  1. http://example.com/tytul-newsa.html, gdzie tytul-newsa to wartość kolumny news_titie_rewrited.
  2. http://example.com/1,tytul-newsa.html, gdzie 1 to ID newsa.
W przypadku 1 należy utworzyć indeks na pole news_titie_rewrited, pole jest tekstem więc zajmie wiele pamięci.
W przypadku 2 nie trzeba nic robić, ID ma primary.

Szybciejszym (moim zdaniem) do wykonania będzie sposób 2. Zajmie mniej pamięci (indeksy), bierze newsy po ID, etc. Oczywiście sposób 1 wygląda nieco ładniej, z dublowaniem tytułów nie ma problemu, bo mam odpowiednie sposoby aby tego uniknąć.

Zapraszam do dyskusji.
bogdan89
No jak sam sobie juz odpowiedziales, sposob drugi jest zdecydowanie lepszy, bo nie trzeba tworzyc tej dodatkowej kolumny w MySQL... przy duzej ilosci danych, trzymanie tyle dodatkowego tekstu na pewno spowolni działanie bazy.

Zawarcie gdzies w url'u ID nie zrobi wiekszej roznicy u robotów wyszukiwarek.
Wizualnie tytul+newsa,124.html też wygląda dużo lepiej, i profesjonalniej niż news.php?id=124
Ja osobiscie odradzałbym korzystanie z pierwszego sposobu, ze względu na wydajność i większe ryzyko "posypania się" aplikacji.
I właśnie... Po co te "odpowiednie sposoby"? Cały czas zależy nam przecież na wydajności...
phpion
Cytat(Athlan @ 1.03.2008, 11:16:19 ) *
Rozważmy 2 przypadki:
  1. http://example.com/tytul-newsa.html, gdzie tytul-newsa to wartość kolumny news_titie_rewrited.
  2. http://example.com/1,tytul-newsa.html, gdzie 1 to ID newsa.
W przypadku 1 należy utworzyć indeks na pole news_titie_rewrited, pole jest tekstem więc zajmie wiele pamięci.
W przypadku 2 nie trzeba nic robić, ID ma primary.

Wyszukiwanie po indeksach liczbowych jest znacznie szybsze od wyszukiwania pod indeksach znakowych. Ponadto jestem zwolennikiem stosowania "sztucznych" identyfikatorów. Przykładowo: na tabeli użytkowników nie ma konieczności stosowania id gdyż pole login może być kluczem głównym. Ja jednak wolę takowe pole dodać.
Jeśli chodzi o zaproponowane przez Ciebie linki preferuję zamiast:
Kod
http://example.com/1,tytul-newsa.html,

stosowanie linku takiego:
Kod
http://example.com/1/tytul-newsa.html,

czyli rozdzielenie id od nazwy za pomocą slasha zamiast przecinka.

Cytat(Athlan @ 1.03.2008, 11:16:19 ) *
Szybciejszym (moim zdaniem) do wykonania będzie sposób 2.

I ogólnie jest lepsiejszy winksmiley.jpg
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.