Slug on osa URL-osoitetta, kun käytät resurssia. Sanotaan, että sinulla on alla olevan kaltainen URL-osoite, joka näyttää kaikki järjestelmässäsi olevat autot:
http://localhost/cars
Kun haluaisit viitata tiettyyn järjestelmässäsi olevaan autoon, antaisit seuraavan URL-osoitteen:
http://localhost/cars/audi-a6/
Huomaa, että URL-osoite on edelleen hyvin looginen ja erittäin SEO-ystävällinen. Mitä tulee slugin käyttöön, se on oman harkintasi mukaan. Yllä oleva audi-a6-merkkijono voi olla auton yksilöllinen tunniste järjestelmässäsi – sanotaan, että sinulla on relaatiotietokanta, jossa on seuraavat kentät:
idcar_namecar_brandcar_unique_identifier
Kenttää car_unique_identifier
käytettäisiin tällöin niiden arvojen tallentamiseen, jotka näytetään slugissa; edellä määrittelemässäni esimerkissä, jossa on Audi A6 -auto, audi-a6-merkkijono sijoittuisi sinne.
Voit käyttää sitä myös muilla tavoin – esimerkiksi jos sinulla on posts-ohjain, joka toimii kuten blogi. Sivun otsikko voi olla sen slug, jos se on URL-koodattu. Artikkelillemme, jonka nimi on ”Parhaat tavat tehdä SEO:sta parempaa”, voit antaa seuraavan URL-osoitteen:
http://localhosts/posts/best-ways-to-make-seo-better
Silloin suorittaisit url_decode()
slugiin, ja saisit merkkijonon parhaita tapoja tehdä SEO:sta parempaa, jota voit käyttää löytääksesi postauksen sen otsikon kautta.
Sen ei tarvitse pysähtyä tähän – voit päättää, että sinulla voi olla useampia slugeja edustamaan jotakin asiaa – tarkastellaanpa, miten BBC:llä toimitaan. Olen ottanut satunnaisen artikkelin tältä päivältä, jonka URL-osoite on seuraava:
http://www.bbc.co.uk/news/world-africa-24506006
Tämä linkittää artikkeliin nimeltä: Afrikan unioni kehottaa ICC:tä luopumaan johtajien syytteistä. BBC:n tapa on se, että se käyttää slugin world-africa-24506006 viimeistä osaa, joka on 24506006, yksilöidäkseen ainutlaatuisen merkinnän järjestelmässään. Sen jälkeen he todennäköisesti käyttävät world-africa-merkintää merkitsemään kategoriaa, johon viesti kuuluu (vaikka tämä voi olla vain oletus, se on silti valistunut arvaus).
Viimeiseksi kuvitellaan seuraava DB-taulukko, tutkimuspapereita varten.
idcategorytitle
Voi olla, että sinulla on esimerkki, joka toimii alla olevan esimerkin tavoin.
http://localhost/papers
Tämä URL-osoite edustaa kaikkia järjestelmässä tällä hetkellä olevia tutkimuspapereita. Silloin voisit päästä käsiksi kaikkiin fysiikan tutkimuspapereihin seuraavan slugin kautta:
http://localhost/papers/physics
Slugimme on fysiikka, ja tietokantamme valinta näyttää tällä hetkellä jotakuinkin seuraavalta:
SELECT *FROM papersWHERE LOWER(papers.category) = 'physics'
Voit sitten altistaa seuraavan URL-osoitteen:
http://localhost/papers/physics/gravitation
Nyt slugimme koostuu fysiikasta ja gravitaatiosta. Kyselymme kulissien takana voi näyttää jotakuinkin seuraavalta:
SELECT *FROM papersWHERE LOWER(papers.category) = 'physics'AND LOWER(papers.title) = 'gravitation'
Siten voimme yksilöidä merkinnän yksiselitteisesti järjestelmässämme.
Olemme siis käyttäneet slugeja toistuvasti suodattaaksemme tietojamme. Esimerkissä, kun ajoimme URL-osoitteen ilman etuliitteitä:
http://localhost/papers
Haluimme luetella kaikki saatavilla olevat tutkimusjulkaisut. Kun ajoimme URL-osoitteen fysiikan slugin kanssa:
http://localhost/papers/physics
Haluimme luetella kaikki fysiikkaa käsittelevät tutkimusjulkaisut, jolloin rajasimme tuloksiamme. Lopuksi, kun annoimme kaksi slugia, pystyimme yksilöimään merkinnän yksiselitteisesti järjestelmässämme:
http://localhost/papers/physics/gravitation
Olisimmeko voineet mallintaa tämän toisin? Totta kai! Järjestelmämme vaatimuksista riippuen voimme normalisoida ja denormalisoida relaatiotaulukot. Meillä olisi voinut olla käytössä permalink-järjestelmä, jolloin viestit-taulukkomme olisi näyttänyt seuraavalta:
id title permalink
Tällöin meillä olisi voinut olla seuraava merkintä:
| 20013 | Gravitation | physics-gravitation-breakthrough |
Siten URL-osoite olisi paljastunut:
http://localhost/papers/physics-gravitation-breakthrough
Ylläolevassa esimerkissä slug physics-gravitation-breakthrough mahdollistaa viestin yksilöllisen tunnistamisen seuraavalla tavalla:
SELECT * FROM papers WHERE papers.permalink = physics-gravitation-breakthrough