Sqids es una biblioteca de código abierto que te permite generar identificadores cortos únicos a partir de números. Estos IDs son seguros para URL, pueden codificar varios números y no contienen palabras malsonantes comunes. Leer más .
Así es cómo lucen:
Ejemplo rápido de codificación y decodificación:
select sqids.encode(array[1, 2, 3], 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', 0); -- 86Rf07
select sqids.decode('86Rf07', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'); -- {1,2,3}
Si los IDs son muy cortos, puedes rellenarlos hasta cierta longitud:
select sqids.encode(array[1, 2, 3], 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', 10); -- 86Rf07xd4z
select sqids.decode('86Rf07xd4z', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'); -- {1,2,3}
Crea IDs únicos al barajar el alfabeto:
select sqids.encode(array[1, 2, 3], 'k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt', 0); -- XRKUdQ
select sqids.decode('XRKUdQ', 'k3G7QAe51FCsPW92uEOyq4Bg6Sp8YzVTmnU0liwDdHXLajZrfxNhobJIRcMvKt'); -- {1,2,3}
La documentación completa está en https://github.com/sqids/sqids-plpgsql
Si estás buscando el Hashids PLpgSQL original, puedes encontrarlo aquí: https://github.com/array-analytics/plpg_hashids
El uso principal de Sqids es puramente visual. Si prefieres usar IDs en lugar de números en tu proyecto, Sqids podría ser una buena elección.