Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Brak ID w adresie
maateusz
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 27.05.2005

Ostrzeżenie: (0%)
-----


Witam,

Zastanawia mnie już od dawna pewna sprawa,

Rozważmy pewien adres strony, np.
http://adres.pl/buty-ride-orion-white

pomińmy już tu kwestię mod_rewrite.

powiedzmy, że jest to sklep internetowy, teraz moje pytanie dotyczy tego.. jak kod odpowiedzialny za pobranie danych odpowiedniego artykułu wie, że ma pobrać dane tego a nie innego artykułu, zważając, że w nazwie strony jest tylko nazwa artykułu a brak jego identyfikatora?

Albo inny przykład bodajże na Wordpress'ie widziałem odwołanie do artykułów po ich nazwie, żadnego identyfikatora w adresie, czy podczas powiedzmy dodawania nowego artykułu tworzony jest identyfikator który jest jego nazwą, tylko zastanawia mnie teraz jedno, bo powiedzmy, że tak jest, tylko jak zapewnić niepowtarzalność takich identyfikatorów tekstowych, gdyż przy dodawaniu nowego artykułu musiałbym sprawdzać czy taki identyfikator istnieje, jeżeli tak jest to wtedy dodawać powiedzmy jakąś cyferkę do nazwy, znowu sprawdzać czy go nie ma i tak aż do momentu gdy znajdę jakiś wolny, prawdopodobieństwo tego, że artykuł będzie już istniał jakieś jest, a są to dodatkowe zapytania, jak to się wszystko dzieje?
Go to the top of the page
+Quote Post
fleshgrinder
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 10
Dołączył: 4.11.2007

Ostrzeżenie: (0%)
-----


Rolę identyfikatora spełnia tu właśnie "buty-ride-orion-white". W bazie masz dodatkową kolumnę, którą zazwyczaj nazywa się "slug", a w niej to, co znajdzie się w pasku adresu. Później zamiast po id elementu wyszukujesz po zawartości tej kolumny. Ot i cała filozofia (IMG:style_emoticons/default/smile.gif)

Odrobinę bardziej kłopotliwe rozwiązanie, niż id (trzeba zapewnić niepowtarzalność slugów), ale zdecydowanie bardziej przyjazne wyszukiwarkom i użytkownikom (zerknięcie na adres i mniej więcej wiadomo gdzie się jest). W większych serwisach można zastosować pewien kompromis, bo wyszukiwanie po łańcuchach znaków jest wolniejsze niż po id, dlatego warto rozważyć adres w formie http://adres.pl/buty-ride-orion-white,20 gdzie po przecinku jest id elementu i po nim wyszukujemy, ale nadal generowany jest slug.

Go to the top of the page
+Quote Post
d3ut3r
post
Post #3





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

Ostrzeżenie: (0%)
-----


Można to rozwiązać mniej więcej tak że podczas zapisywania jakiegoś zasobu (artykuł, produkt, cokolwiek) tworzysz jego alias czyli tytuł bez znaków spacji itp i np tworzysz artykuł "Jak napisać program w C" system tworzy alias "jak_napisac_program_w_c" później tylko analizujesz zapytanie i sprawdzasz co to za alias user wpisał i co z nim zrobić.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 10:40