Using PostgreSQL to Generate Slugs

Ian Ker-Seymer
May 23, 2018 · 1 min read

Slugs are useful for generating friendly identifiers for resources. For example, Yelp will generate the slug kimball-house-decatur for the restaurant Kimball House in Decatur, GA. By having a friendly slug in the URL, it makes it easier for me to find the Yelp listing when I search the web for this delicious restaurant.

We decided to use PostgreSQL to create a slugify function that we can easily use. Here’s what the code looks like.

Keep in mind you may have to deal with some uniqueness constraints, so use this code as a starting point if you decide to create slugs in the DB. Specifically, we had to create a SEQUENCE for duplicate slugs and append it to the slug. This worked in our case but might not work if you expect to have a ton of conflicts.

Keep sluggin’!

Broadlume Product Development

Engineering & Product Blog of Broadlume (formerly AdHawk)

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store